Android六大布局的介紹

來源:互聯網
上載者:User

標籤:

Android開發布局:.xml 頁面排版

1.線性布局(LinearLayout)

LinearLayout是線性不布局控制項,它包含的子控制項將以橫向或者豎向的方式排列
android:orientation = "vertical"
--- 該屬性決定他子類控制項的排布方式(vertical:垂直;horizontal: 水平)
android:gravity = "center"
--- 該屬性決定他子類xy的位置

android:layout_gravity 表示組件自身在父組件中的位置
android:gravity 表示組件的子組件在組件中的位置

 

2.相對布局(RelativeLayout)
RelativeLayout是相對布局控制項,它包含的子控制項將以控制項之間的相對位置或者子類控制項相對父容器的位置的
方式排列

android:layout_alignParentLeft = "true" 子類控制項相對當前父類容器靠左邊
android:layout_marginTop = "41dp" 子類控制項相對父類容器上邊的距離
android:layout_centerInParent = "true"子類控制項相對於父類容器即水平置中又垂直置中
android:layout_centerHorizontal = "true" 子類控制項相對於父類容器水平置中
android:layout_centerVertical = "true" 子類控制項相對於父類容器垂直置中

android:layout_toRightOf="@+id/1" 該控制項位於控制項1右側
android:layout_alignBottom="@+id/1" 該控制項底部對齊於控制項1

3.表格版面配置(TableLayout)
TableLayout 表格版面配置模型以行列的形式管理子控制項,每一行為一個TableRow的對象,當然也可以是一個View的對象。

①如果我們直接往TableLayout中添加組件的話,那麼這個組件將佔滿一行!!!
②如果我們想一行上有多個組件的話,就要添加一個TableRow的容器,把組件都丟到裡面!

注意一列能同時表示收縮和展開,可以通過"*"代替收縮或展開所有列,以上這三個屬性的列號都是從0開始算的
android:collapseColumns = "1,2"隱藏從0開始的索引列。列之間必須用逗號隔開:1,2,5
android:shrinkColumns="1,2" 收縮從0開始的索引列。當可收縮的列太寬()內容過多不會別擠出螢幕,
android:stretchColumns = "1,2"展開從0開始的索引。以填滿剩下的多餘空白空間。列之間必須用逗號隔開。

對於<TableRow></TableRow>內的控制項而言
android:layout_column = "1" 表示該控制項顯示在第2列
android:layout_span = "2" 表示該控制項佔據2列

4.幀布局(FrameLayout)
在這個布局中, 所有的元素都不能別指定放置的位置,他們統統放於這塊地區的左上方,並且後面的子項目直接覆蓋在前面的子項目上,
將前面的子項目部分和全部遮擋。
FrameLayout的屬性很少就兩個,但是在說之前我們先介紹一個東西:
前景映像:永遠處於幀布局最上面,直接面對使用者的映像,就是不會被覆蓋的圖片。
兩個屬性:
android:foreground:*設定改幀版面配置容器的前景映像
android:foregroundGravity:設定前景映像顯示的位置

 

5.網格布局(GridLayout)
該布局是Android 4.0 後新增的一個布局,以網格的形式布局視窗控制項
這裡要說一點,網格布局和其他布局不同,可以不為組件設定Layout_width和Layout_height屬性
因為組件的寬高由幾行幾列決定了,當然,你也可以寫個wrap_content

常用屬性:
排列對齊:
①設定組件的相片順序: android:orientation="" vertical(豎直,預設)或者horizontal(水平)
②設定組件的對齊: android:layout_gravity="" center,left,right,buttom啊,這些,如果想同時用兩種的話:eg: buttom|left

設定布局為幾行幾列:
①設定有多少行:android:rowCount="4" //設定網格布局有4行
②設定有多少列:android:columnCount="4" //設定網格布局有4列

設定某個組件位於幾行幾列
注:都是從0開始算的哦!

①組件在第幾行:android:layout_row = "1" //設定組件位於第二行
②組件在第幾列:android:layout_column = "2" //設定該組件位於第三列

設定某個組件橫跨幾行幾列:
①橫跨幾行:android:layout_rowSpan = "2" //縱向橫跨2行
②橫跨幾列:android:layout_columnSpan = "3" //橫向橫跨2列

 

6.絕對布局(AbsoluteLayout)
該布局又可以叫做座標布局,可以直接指定子項目的絕對位置(x,y)
但是由於手機螢幕尺寸差別較大,使用絕對位置的適應性會比較差,在螢幕的適配上有缺陷
android:layout_x = "32dip" 控制當前子類控制項的x位置
android:layout_y = "32dip" 控制當前子類控制項的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.