一、說明
1.每個應用程序都默認包含一個主界面布局文件(.xml)。
2.位於項目的app/src/main/res/layout目錄。
3.寬度和高度的屬性
match_parent:強制性的使視圖擴展至父元素大小。
wrap_content:強制性地使視圖擴展以顯示全部內容。
4.布局文件名稱只能包含小寫字母(a-z)數字(0-9)和下划線組成,並且只能是小寫字母開頭。
5.五大布局:
二、布局文件的創建
三、線性布局(LinearLayout)
1.常用屬性
orientation:布局中組件的排列方式,有horziontal(水平)和vertical(垂直)兩種方式。
gravity:控制組件所包含的子元素的對齊方式,可多個組合,如(left|buttom)。
layout_gravity:控制該組件在父容器里的對齊方式。
layout_width:布局的寬度,通常不直接寫數字,用wrap_content(組件實際大小),fill_parent或者match_parent填滿父容器。
layout_height:布局的高度,參數同上。
id:為該組件設置一個資源id,在java文件中可以通過findViewByid(id)找到該組件。
background:為該組件設置一個背景圖片,或者直接用顏色覆蓋。
2.Weight(權重)
該屬性是用來等比例地划分區域。
要等比例划分,分誰,誰的layout_width="0dp",,layout_weight按比例即可。
四、相對布局(RelativeLayout)
1.基本屬性
gravity:設置容器內組件的對齊方式。
ignoreGravity:設置了該屬性為true的屬性的組件,將不受gravity屬性的影響。
2.根據父容器定位
layout_alignParentLeft:左對齊。
layout_alignParentRight:右對齊。
layout_alignParentTop:頂部對齊。
layout_alignParentBottom:底部對齊。
layout_centerHorizontal:水平居中。
layout_centerVertical:垂直居中。
layout_centerInParent:中間位置。
3.根據兄弟組件定位
layout_toLeftOf:參考組件的左邊。
layout_toRightOf:參考組件的右邊。
layout_above:參考組件的上方。
layout_below:參考組件的下方。
layout_alignTop:對齊參考組件的上邊界。
layout_alignBottom:對齊參考組件的下邊界。
layout_alignLeft:對齊參考組件的左邊界。
layout_alignRight:對齊參考組件的右邊界。
4.margin(偏移)
layout_margin:設置組件上下左右的偏移量。
layout_marginLeft:設置組件離左邊的偏移量。
layout_marginRight:設置組件離右邊的偏移量。
layout_marginTop:設置組件離上面的偏移量。
layout_marginBottom:設置組件離下面的偏移量。
5.padding(填充)
padding:往內部元素的上下左右填充一定邊距。
paddingLeft:往內部元素的左邊填充一定邊距。
paddingRight:往內部元素的右邊填充一定邊距。
paddingTop:往內部元素的上方填充一定邊距
paddingBottom:往內部元素的下方填充一定邊距。
五、表格布局(TableLayout)
1.說明
(1)需要和TableRow標記配合使用,TableRow的數量決定表格的行數。
(2)表格的列數是由包含最多控件的TableRow決定的。
(3)TableRow的layout_width屬性默認為match_parent,其他值不會生效。
(4)layout_height默認是wrap_content,可以設置大小。
(5)整個表格布局的寬度和取決於父容器的寬度。
2.常用屬性
collapseColumns:設置需要被隱藏的列的序號。
shrinkColumns:設置允許被收縮的列的序列號。
stretchColumns:設置允許被拉伸的列的序列號。
注意:列號從0開始。
layout_column=“2”跳過第二個格子,直接顯示到第三個格子處。
layout_span="4"合並四個單元格
六、幀布局(FrameLayout)
直接開辟一塊空白區域,拖進去的控件默認位置左上角。
前景圖像:用於處於幀布局最上面,直接面對用戶的圖像,是不會被覆蓋的圖片。
1.常用屬性
foreground:用來設置幀布局容器的前景圖像。
foregroundGravity:用來設置幀布局容器的前景圖像顯示的位置。
七、絕對布局(AbsoluteLayout)
layout_x:橫坐標
layout_y:縱坐標