1.LinearLayout 線性布局:
(1)android:orientation="vertical"表示豎直方式對齊
(2)android:orientation="horizontal"表示水平方式對齊
(3)android:layout_width="fill_parent"定 義當前視圖在屏幕上可以消費的寬 度,fill_parent即填充整個屏幕。
(4)android:layout_height="wrap_content": 隨著文字欄位的不同而 改變這個視圖的寬度或者高度。有點自動設置框度或者高度的意思layout_weight默認值是零,用于給一個線性布局中的諸多視圖的重要度賦值。比如說我們在?水平方向上有一個文本標簽和兩個文本編輯元素,該文本標簽并無指定layout_weight值,所以它將占據需要提供的最少空間;如果兩個文本編輯元素每一個的layout_weight值都設置為1, 則兩者平分在父視圖布局剩余的寬度(因為我們聲明這兩者的重要度相等)。如果兩個文本編輯元素其中第一個的layout_weight值設置為1,而 第二個的設置為2,則剩余空間的三分之一分給第二個,三分之二分給第一個(正比劃分)。(僅在LinearLayou中有效)
2.TableLayout 表格布局
表格布局,適用于多行多列的布局格式,每個TableLayout是由多個TableRow組成,一個TableRow就表示TableLayout中的每一行,這一行可以由多個子元素組成。實際上TableLayout和TableRow都是LineLayout線性布局的子類。但是TableRow的參數android?rientation屬性值固定為horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow實際是一個橫向的線性布局,且所以子元素寬度和高度一致。
注意:在TableLayout中,單元格可以為空,但是不能跨列,意思是只能不能有相鄰的單元格為空.
在TableLayout布局中,一列的寬度由該列中最寬的那個單元格指定,而該表格的寬度由父容器指定。可以為每一列設置以下屬性:
Shrinkable? 表示該列的寬度可以進行收縮,以使表格能夠適應父容器的大小
Stretchable 表示該列的寬度可以進行拉伸,以使能夠填滿表格中的空閑空間
Collapsed??表示該列會被隱藏
TableLayout中的特有屬性:
android:collapseColumns
android:shrinkColumns
android:stretchColumns = "0,1,2,3"
3.RelativeLayout 相對布局
RelativeLayout繼承于android.widget.ViewGroup,其按照子元素之間的位置關系完成布局的,作為Android系統五大布局中最靈活也是最常用的一種布局方式,非常適合于一些比較復雜的界面設計。
注意:在引用其他子元素之前,引用的ID必須已經存在,否則將出現異常。
常用的位置屬性:
android:layout_toLeftOf? ? 該組件位于引用組件的左方
android:layout_toRightOf? ?該組件位于引用組件的右方
android:layout_above? ?? ? 該組件位于引用組件的上方
android:layout_below? ?? ? 該組件位于引用組件的下方
android:layout_alignParentLeft? ?? ?? ? 該組件是否對齊父組件的左端
android:layout_alignParentRight? ?? ?? ?該組件是否齊其父組件的右端
android:layout_alignParentTop? ?? ?? ???該組件是否對齊父組件的頂部
android:layout_alignParentBottom? ?? ???該組件是否對齊父組件的底部
android:layout_centerInParent? ?? ?? ???該組件是否相對于父組件居中
android:layout_centerHorizontal? ?? ?? ?該組件是否橫向居中
android:layout_centerVertical? ?? ?? ???該組件是否垂直居中
4.FrameLayout 框架布局
將所有的子元素放在整個界面的左上角,后面的子元素直接覆蓋前面的子元素,所以用的比較少。
5.AbsoluteLayou 絕對布局
絕對布局中將所有的子元素通過設置android:layout_x 和 android:layout_y屬性,將子元素的坐標位置固定下來,即坐標(android:layout_x, android:layout_y) ,layout_x用來表示橫坐標,layout_y用來表示縱坐標。 屏幕左上角為坐標(0,0),橫向往右為正方,縱向往下為正方。實際應用中,這種布局用的比較少,因為Android終端一般機型比較多,各自的屏幕大小。分辨率等可能都不一樣,如果用絕對布局,可能導致在有的終端上顯示不全等。
除上面講過之外常用的幾個布局的屬性:
(1)layout_margin?用于設置控件邊緣相對于父控件的邊距
android:layout_marginLeft
android:layout_marginRight
android:layout_marginTop
android:layout_marginBottom
(2) layout_padding?用于設置控件內容相對于控件邊緣的邊距
android:layout_paddingLeft
android:layout_paddingRight
android:layout_paddingTop
android:layout_paddingBottom
(3) layout_width/height
用于設置控件的高度和寬度
wrap_content 內容包裹,表示這個控件的里面文字大小填充
fill_parent 跟隨父窗口
match_parent
(4) gravity?用于設置View組件里面內容的對齊方式top bottom left? ?right??center等
(5) android:layout_gravity?用于設置Container組件的對齊方式
android:layout_alignTop 本元素的上邊緣和某元素的的上邊緣對齊
android:layout_alignLeft 本元素的左邊緣和某元素的的左邊緣對齊
android:layout_alignBottom 本元素的下邊緣和某元素的的下邊緣對齊
android:layout_alignRight 本元素的右邊緣和某元素的的右邊緣對齊