最近開始復(fù)習(xí)Android,突然發(fā)現(xiàn)自己以前沒(méi)怎么寫筆記,沒(méi)有體系橄登。一看Android的布局都有七大了须鼎,所以決定一邊復(fù)習(xí),一邊記錄。
七大布局分別為:線性布局(LInearLayout)、相對(duì)布局(RelativeLayout)、幀布局(FrameLayout)犯建、表格布局(TableLayout)、絕對(duì)布局(absoluteLayout)烛占、網(wǎng)格布局(GridLayout)胎挎、約束布局(ConstraintLayout)
1.線性布局(LInearLayout)
主要屬性:
1.1 orientation設(shè)置布局管理器內(nèi)組件的排列方式,可以設(shè)置為horizontal(橫向)忆家、vertical(縱向)兩個(gè)值之一
1.2 gravity設(shè)置布局管理器內(nèi)組件的對(duì)齊方式犹菇,layout_gravity控制自己在父元素的位置。
1.3?layout_weight設(shè)置權(quán)重芽卿,推薦layout_width="0dp"或layout_height="0dp"揭芍。
2.相對(duì)布局(RelativeLayout)
主要屬性:
3.幀布局(FrameLayout)
繼承自ViewGroup組件,很少使用這個(gè)布局卸例,主要可以使布局疊加称杨。FrameLayout為每個(gè)加入其中的組件創(chuàng)建一個(gè)空白的區(qū)域(稱為一幀),每個(gè)子組件占據(jù)一幀筷转,這些幀會(huì)根據(jù)gravity屬性執(zhí)行自動(dòng)對(duì)齊姑原。
4.表格布局(TableLayout)
TableLayout包裹TableRow(行數(shù)),
TableRow包裹view(列數(shù))呜舒。
shrinkColumns屬性:當(dāng)TableRow里邊的空間布滿布局的時(shí)候锭汛,指定列自動(dòng)延伸以填充可用部分。當(dāng)TableRow里邊的控件還沒(méi)有布滿布局時(shí),不起作用唤殴。?
tretchColumns屬性:設(shè)置可伸展的列般婆。該列可以向行方向伸展,最多可占據(jù)一整行朵逝。
collapseColumns屬性:設(shè)置要隱藏的列蔚袍。
5.絕對(duì)布局(absoluteLayout)
絕對(duì)布局是需要指定子元素的 xy 精確坐標(biāo)的布局。絕對(duì)布局缺乏靈活性配名,在沒(méi)有絕對(duì)定位的情況下相比其他類型的布局更難維護(hù)啤咽,不建議使用。
6.網(wǎng)格布局(GridLayout)
Android4.0(API Level 14)新引入的網(wǎng)格矩陣形式的布局控件段誊。
使用的時(shí)候需要注意兼容:
compile 'com.android.support:gridlayout-v7:22.+'
7.約束布局(ConstraintLayout)
Android Studio 2.2推出的新布局闰蚕,并從Android Studio 2.3開始成為默認(rèn)布局。
它的出現(xiàn)是為了解決復(fù)雜布局時(shí)连舍,布局嵌套過(guò)多的問(wèn)題(嵌套布局會(huì)增加繪制界面所需的時(shí)間)
相關(guān)屬性