【Android應用開發技術:使用者界面】章節清單
布局管理繼承于ViewGroup。它用來管理Android應用使用者界面裡各元件,它的使用使得Android應用的圖形使用者界面具有良好的平台無關性。
常見的布局方式例如以下所看到的:
- 線性布局
- 表格布局
- 幀布局
- 相對布局
- 網絡布局
一 線性布局
線性布局。即LinearLayout,控制容器内的元件橫向或縱向地一個挨着一個排列起來。
1.1 線性布局特點
例如以下圖所看到的:

線性布局并不會自己主動換行,當一行元件徘滿時,多出的元件不會顯示出來。
1.2 線性布局屬性
屬性名稱 | 屬性說明 |
android:gravity | 設定線性布局的内部元素的布局對齊方式 |
android:gravity 取值例如以下所看到的:
- top 不改變控件大小,對齊到容器頂部
- bottom 不改變控件大小,對齊到容器底部
- left 不改變控件大小,對齊到容器左側
- right 不改變控件大小,對齊到容器右側
- center_vertical 不改變控件大小,對齊到容器縱向中央位置
- center_horizontal 不改變控件大小,對齊到容器橫向中央位置
- center 不改變控件大小。對齊到容器中央位置
- fill_vertical 若有可能,縱向拉伸以填滿容器
- fill_horizontal 若有可能,橫向拉伸以填滿容器
- fill 若有可能,縱向橫向同一時候拉伸以填滿容器
二 表格布局
表格布局,即TableLayout,繼承于LinearLayout。它通過行、列的形式管理UI元件。
2.1 表格布局特點
- TableLayout通過加入TableRow和其它元件來控制表格的行數和列數。每一個TabRow就是一個表格行,TableRow也是容器,也能夠在TableRow中加入其它元件。
- 假設直接在TableLayout中加入一個元件。那麼這個元件則獨占一行。
- TableLayout中列的寬度由該列中最寬的那個單元格決定,整個表格布局的寬度則取決于父容器的寬度。
- 單元格的設定有下面三種行為方式:
- Shrinkable:該列全部單元格能夠被收縮,以保證該表格能适應父容器的寬度。
- Stretchable:該列全部單元格能夠被拉伸,以保證元件能夠全然填滿表格空餘空間。
- Collapsed:該列全部單元格會被隐藏。
三 幀布局
幀布局。即FrameLayout。它繼承了ViewGroup。幀布局為每一個加入當中的元件建立一個空白的區域,稱為一幀。每一個子元件占領一幀。幀布局是元素的互相疊加。
四 相對布局
相對布局。即RelativeLayout,相對布局内子元件的位置總是相對于兄弟元件和父容器來決定的。
4.1 相對布局特點
相對布局例如以下圖所看到的:
4.2 相對布局屬性
4.2.1 RelativeLayout中取值為true或false的屬性清單
android:layout_centerHorizontal | 目前控件位于父控件的橫向中間位置 |
android:layout_centerVertical | 目前控件位于父控件的縱向中間位置 |
android:layout_centerInParent | 目前控件位于父控件的中央位置 |
android:layout_alignParentBottom | 目前控件底端與父控件底端對齊 |
android:layout_alignParentLeft | 目前控件左側與父控件左側對齊 |
android:layout_alignParentRight | 目前控件右側與父控件右側對齊 |
android:layout_alignParentTop | 目前控件頂端與父控件頂端對齊 |
android:layout_alignWithParentIfMissing | 參照控件不存在或不可見時參照父控件 |
4.2.2 RelativeLayout中取值為其它控件id的屬性清單
android:layout_toRightOf | 使目前控件位于給出id控件的右側 |
android:layout_toLeftOf | 使目前控件位于給出id控件的左側 |
android:layout_above | 使目前控件位于給出id控件的上方 |
android:layout_below | 使目前控件位于給出id控件的下方 |
android:layout_alignTop | 使目前控件的上邊界與給出id控件的上邊界對齊 |
android:layout_alignBottom | 使目前控件的下邊界與給出id控件的下邊界對齊 |
android:layout_alignLeft | 使目前控件的左邊界與給出id控件的左邊界對齊 |
android:layout_alignRight | 使目前控件的右邊界與給出id控件的右邊界對齊 |
4.2.3 RelativeLayout中取值為像素的屬性清單
android:layout_marginLeft | 目前控件左側的留白 |
android:layout_marginRight | 目前控件右側的留白 |
android:layout_marginTop | 目前控件上方的留白 |
android:layout_marginBottom | 目前控件下方的留白 |
android:layout_margin | 目前控件上下左右四個方向的留白 |
android:paddingLeft | 目前控件中内容距離控件左邊留白 |
android:paddingRight | 目前控件中内容距離控件右邊留白 |
android:paddingTop | 目前控件中内容距離控件頂部留白 |
android:paddingBottom | 目前控件中内容距離控件底部留白 |
五 網絡布局
網絡布局,即GridLayout,它将容器劃分為row x column個網格。每一個網格能夠放置一個元件。在該布局内。一個元件能夠橫跨多行,也能夠橫跨多列。
網絡布局例如以下圖所看到的: