Android學習筆記六:六大布局

來源:互聯網
上載者:User

標籤:學習   sed   fill   空白   組合   attribute   order   ati   對齊   

    六大介面布局方式包括: 線性布局(LinearLayout)、幀布局(FrameLayout)、表格版面配置(TableLayout)、相對布局(RelativeLayout)、絕對布局(AbsoluteLayout)和網格布局(GridLayout) 。   

1. LinearLayout線性布局

LinearLayout容器中的組件一個挨一個排列,通過控制android:orientation屬性,可控制各組件是橫向排列還是縱向排列。

LinearLayout的常用XML屬性及相關方法
XML屬性 相關方法 說明
android:gravity setGravity(int) 設定布局管理器內組件的對齊
android:orientation setOrientation(int) 設定布局管理器內組件的相片順序,可以設定為horizontal、vertical兩個值之一

其中,gravity屬性支援top, left, right, center_vertical, fill_vertical, center_horizontal, fill_horizontal, center, fill, clip_vertical, clip_horizontal。也可以同時指定多種對齊的組合。

LinearLayout子項目支援的常用XML屬性及方法

 

XML屬性 說明
android:layout_gravity 指定該子項目在LinearLayout中的對齊
android:layout_weight 指定子項目在LinearLayout中所佔的權重

 

2. TableLayout表格版面配置

TableLayout繼承自Linearout,本質上仍然是線性布局管理器。表格版面配置採用行、列的形式來管理UI組件,並不需要明確地聲明包含多少行、多少列,而是通過添加TableRow、其他組件來控製表格的行數和列數。

每向TableLayout中添加一個TableRow就代表一行;

每向TableRow中添加一個一個子組件就表示一列,可以通過android:layout_span="n"設定子組件佔據n列;

如果直接向TableLayout添加組件,那麼該組件將直接佔用一行;

3. FrameLayout幀布局

FrameLayout直接繼承自ViewGroup組件。幀布局為每個加入其中的組件建立一個空白的地區(稱為一幀),每個子組件佔據一幀,這些幀會根據gravity屬性執行自動對齊。

如果在同一個地方定義了多個控制項,則後面的控制項覆蓋前面的空間。

4. RelativeLayout相對布局RelativeLayout.LayoutParams裡只能設為boolean的XML屬性
XML屬性 說明
android:layout_centerHorizontal 設定該子組件是否位於版面配置容器的水平置中
android:layout_centerVertical  
android:layout_centerParent  
android:layout_alignParentBottom  
android:layout_alignParentLeft  
android:layout_alignParentRight  
android:layout_alignParentTop
RelativeLayout.LayoutParams裡屬性值為其他UI組件ID的XML屬性
XML屬性 說明
android:layout_toRightOf 控制該子組件位於給出ID組件的右側
android:layout_toLeftOf  
android:layout_above  
android:layout_below  
android:layout_alignTop  
android:layout_alignBottom  
android:layout_alignRight  
android:layout_alignLeft
5. GridLayout網格布局

GridLayout是Android4.0增加的網格布局控制項,與之前的TableLayout有些相似,它把整個容器劃分為rows × columns個網格,每個網格可以放置一個組件。效能及功能都要比tablelayout好,比如GridLayout布局中的儲存格可以跨越多行,而tablelayout則不行,此外,其渲染速度也比tablelayout要快。

GridLayout提供了setRowCount(int)和setColumnCount(int)方法來控制該網格的行和列的數量

GridLayout常用的XML屬性和方法說明
XML屬性 相關方法 說明
android:alignmentMode setAlignmentMode(int) 設定該布局管理器採用的對齊模式
android:columnCount setColumnCount(int) 設定該網格的列數量
android:columnOrderPreserved setColumnOrderPreserved(boolean) 設定該網格容器是否保留序號
android:roeCount setRowCount(int) 設定該網格的行數量
android:rowOrderPreserved setRowOrderPreserved(boolean) 設定該網格容器是否保留行序號
android:useDefaultMargins setUseDefaultMargins(boolean) 設定該布局管理器是否使用預設的頁面邊界
在其中的組件常用的XML屬性和方法說明
XML屬性 說明
android:layout_column 設定該組件在GridLayout的第幾列
android:layout_columnSpan 設定該子組件在GridLayout橫向上跨幾列
android:layout_gravity 設定該子組件採用何種方式佔據該網格的空間
android:layout_row 設定該子組件在GridLayout的第幾行
android:layout_rowSpan 設定該子組件在GridLayout縱向上跨幾行
6. AbsoluteLayout絕對布局(不推薦)

即Android不提供任何布局控制,而是由開發人員自己通過X座標、Y座標來控制組件的位置。每個組件都可指定如下兩個XML屬性:

  • layour_x;
  • layout_y;

 

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.