【Android應用開發技術:使用者介面】布局管理器

來源:互聯網
上載者:User

標籤: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 表格版面配置特點
  1. TableLayout通過加入TableRow和其它組件來控製表格的行數和列數。每一個TabRow就是一個表格行,TableRow也是容器,也能夠在TableRow中加入其它組件。
  2. 假設直接在TableLayout中加入一個組件。那麼這個組件則獨佔一行。
  3. TableLayout中列的寬度由該列中最寬的那個儲存格決定,整個表格版面配置的寬度則取決於父容器的寬度。
  4. 儲存格的設定有下面三種行為方式:
    • 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應用開發技術:使用者介面】布局管理器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.