第二章筆記分享

Android開發(fā)布局詳解

比較常用的控件 三

WebView:加載網(wǎng)頁

ListView:顯示列表

GridView:顯示表格式列表

ScrollView:內(nèi)容可滾動視圖

SufaceView:非常重要的繪圖容器(很多游戲都是用sufaceview做的)

五大布局:

Linearlayout :線性布局

像一條線一樣布局,兩大特點(diǎn):

1.orientation:vertical縱向排列

horizontal水平排列

2.layout_weight

weightsum:比例的方式來排布

寬度設(shè)置成0dp(水平布局的情況下)。

注釋:commas+/

android的坐標(biāo)是從左到右和從上到下的。

Relativelayout :相對布局

xmlns:xmlns(name space)這個(gè)xml的命名空間是Android,如果不加這一行,那么后面就不能引用Android的內(nèi)容。

資源文件的名字是不能有大寫的。

button為例:

layout_alignParentBottom = "true"

layout_alignParentRight="true"

元素之間,在后面的會蓋住之前的內(nèi)容。

解決方案:

給上面一個(gè)button一個(gè)id:id=“+id/button"

下面的給:layout_above = “@+id/button"

沒有必要的屬性要?jiǎng)h除,很有可能會影響布局。因?yàn)锳ndroid會解析xml對布局進(jìn)行計(jì)算,即使有矛盾,也會根據(jù)一定的原則來選擇一個(gè)值。

layout_below

layout_toLeftOf

alignLeft:左邊對齊

alignTop

父布局的上下左右

朋友的上下左右

朋友的左右上下對齊

layout_margin = “100dp"

layout_marginLeft = “100dp” 外邊距左邊距100dp

paddingLeft = “40dp” ?內(nèi)邊距左邊距40dp

FrameLayout :幀布局

一層一層疊上去的。

AbsoluteLayout :絕對布局

靠絕對坐標(biāo)來定位,不建議使用。

layout_x

layout_y

TableLayout :表格布局

類似于做了一個(gè)表格。

TableRow

前三種使用頻率加起來超過98%,后兩種使用較少

Android布局技巧與優(yōu)化

溫故知新

基本控件

五大布局

UI = 控件+布局

思考:布局是如何繪制的?

樹形的解析

linearlayout默認(rèn)水平排列

可能會產(chǎn)生哪些性能問題?

層次太多導(dǎo)致加載速度變慢

如何優(yōu)化?

減少層次

減少布局層次的重要性

官方建議布局層次:最多10層(縮水后就更少了)

減少層次后能運(yùn)行在更多手機(jī)上

如何減少

學(xué)會利用相對布局

如何利用相對布局減少層次?

利用相對布局替換線性布局

stack overflow:層次太多會導(dǎo)致棧溢出(例子:小米初期)

建議工作中不要拖動,熟練后手寫布局

控件的組合

有些效果可以由控件和控件的組合產(chǎn)生

如何組合

一些有用的屬性

布局如何引用相同的部分

:重用布局

? ? ? ????為何是成為背景

減少視圖層級

:需要時(shí)才加載

總結(jié):如何優(yōu)化布局

減少層次

刪除無用布局

布局結(jié)構(gòu)要清晰

選擇合適的布局

小技巧:

不要嵌套多個(gè)使用layout_weight屬性的LinearLayout

兩個(gè)工具:Android lint幫你刪除無用的資源,無用的文件、引用、類、布局、控件

HierarchyViewer幫你分析你的布局的層級

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容