標籤:fill gravity 展開 組件 statistic 設定 取值 views shrink
郭孝星
微博:郭孝星的新浪微博
郵箱:[email protected]
部落格:http://blog.csdn.net/allenwells
Github:https://github.com/AllenWells
【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個網格。每一個網格能夠放置一個組件。在該布局內。一個組件能夠橫跨多行,也能夠橫跨多列。
網路布局例如以所看到的:
【Android應用開發技術:使用者介面】布局管理器