五大布局
- LinearLayout 線性布局
- android:orientation="vertical/horizontal" 子類控件排列方式
<code>vertical</code> 垂直
<code>horizontal</code> 水平 - android:gravity="center/right/left..."子類控件位置
<code>center_horizontal</code> 水平居中
<code>center_vertical</code> 垂直居中
可以同時設置多個屬性,如<code>bottom|center_horizontal</code>,設置子類控件位于底部的中央 - 子控件可以通過設置<code>android:layout_orientation</code>或<code>android:layout_gravity</code>來控制位置
- 子控件通過<code>android:layout_weight</code>來設置控件的占比。
<code>android:layout_weight</code>真實含義是:一旦View設置了該屬性(假設有效的情況下),那么該 View的寬度等于原有寬度(<code>android:layout_width</code>)加上剩余空間的占比!
Google官方推薦,當使用weight屬性時,將width設為0dip即可,效果跟設成<code>wrap_content</code>是一樣的。這樣weight就可以理解為占比了!
- RelativeLayout 相對布局
全局屬性
- <code>android:layout_alignParentLeft="true"</code> 子類控件相對當前父類容器靠左邊
- <code>android:layout_alignParentTop="true"</code> 子類控件相對當前父類容器靠上邊
- <code>android:layout_marginLeft="41dp"</code> 子類控件距離當前父類容器左邊的距離
- <code>android:layout_marginTop="41dp"</code> 子類控件距離當前父類容器上邊的距離
- <code>android:layout_centerInParent="true"</code> 子類控件相對當前父類容器水平垂直居中
- <code>android:layout_centerHorizontal="true"</code> 子類控件相對當前父類容器水平居中
- <code>android:layout_centerVertical="true"</code> 子類控件相對當前父類窗口垂直居中
子控件屬性
- <code>android:layout_below="@+id/"</code> 該控件位于給定id控件的底部
- <code>android:layout_toRightOf="@+id/"</code> 該控件位于給定id控件的右邊
- <code>android:layout_above="@+id/"</code> 該控件位于給定id的上面
- <code>android:layout_toLeftOf="@+id/"</code> 該控件位于給定id的左邊
- <code>android:layout_alignBaseline="@+id/"</code> 該控件的內容與給定id控件的內容在一條線上
- <code>android:layout_alignBottom/android:layout_alignLeft/android:layout_alignRight/android:layout_alignTop</code> 該控件的底部與給定id控件的[底部/左邊/右邊/頂部]邊緣對齊
- FrameLayout 幀布局
- AbsoluteLayout絕對布局
- 又叫坐標布局,可以直接指定子控件的絕對位置(xy)
- <code>android:layout_x/android:layout_y</code>
- TableLayout 表格布局
全局屬性
- <code>TableLayout</code>以行列的形式管理子控件,每一行為一個TableRow對象,也可以是一個View對象
- <code>android:collapseColumns="1,2"</code>隱藏從0開始的索引列,多列用逗號分隔
- <code>android:shrinkColumns="1,2"</code>收縮從0開始的索引列
- <code>android:stretchColumns="1,2"</code>拉伸從0開始的索引列,*表示所有列
子控件屬性
- <code>android:layout_column</code> 第n列
- <code>android:layout_span</code> 占據列寬