安卓筆記-android五大布局

來源:互聯網
上載者:User

標籤:

1.LinearLayout,線性布局

    在android項目開發中最經常用到的線性布局,相比相對布局適配度高,不容易因介面改變而變形,LinearLayout可通過設定布局屬性orientation來設定子項目水平(horizontal)或垂直排列(vertical)

     LinearLayout中的子項目屬性android:layout_weight生效,它用於描述該子項目在剩餘空間中佔有的大小比例,如果一個LinearLayout中含有倆個TextView控制項。第一個TextView設定了weight屬性將會把第二個TextView擠到最邊。如果倆個都設定了為1,那麼他們各占父Linearlayout的一半,如果哪邊數值更大將佔更多的比份。

  android:gravity 與 android:layout_gravity的區別
  android:gravity是指定本元素的子項目相對它的對齊。
  android:layout_gravity是指定本元素相對它的父元素的對齊。

     這兩個屬性可選的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。而且這些屬性是可以多選的,用“|”分開。預設這個的值是:Gravity.LEFT

2.RelativeLayout,相對布局

    RelativeLayout是Android五大布局結構中最靈活的一種布局結構,比較適合一些複雜介面的布局。

    RelativeLayout按照各子項目之間的位置關係完成布局。在此布局中的子項目裡與位置相關的屬性將生效

    RelativeLayout第一類:屬性值為true或false
  android:layout_centerHrizontal                                          水平置中
  android:layout_centerVertical                                            垂直置中
  android:layout_centerInparent                                          相對於父元素完全置中
  android:layout_alignParentBottom                                     貼緊父元素的下邊緣
  android:layout_alignParentLeft                                          貼緊父元素的左邊緣
  android:layout_alignParentRight                                        貼緊父元素的右邊緣
  android:layout_alignParentTop                                          貼緊父元素的上邊緣
  android:layout_alignWithParentIfMissing                            如果對應的兄弟元素找不到的話就以父元素做參照物

     RelativeLayout第二類:屬性值必須為id的引用名“@id/id-name”
  android:layout_below                          在某元素的下方
  android:layout_above                          在某元素的的上方
  android:layout_toLeftOf                       在某元素的左邊
  android:layout_toRightOf                     在某元素的右邊

  android:layout_alignTop                      本元素的上邊緣和某元素的的上邊緣對齊
  android:layout_alignLeft                      本元素的左邊緣和某元素的的左邊緣對齊
  android:layout_alignBottom                 本元素的下邊緣和某元素的的下邊緣對齊
  android:layout_alignRight                    本元素的右邊緣和某元素的的右邊緣對齊

     RelativeLayout第三類:屬性值為具體的像素值,如30dip,40px
  android:layout_marginBottom              離某元素底邊緣的距離
  android:layout_marginLeft                   離某元素左邊緣的距離
  android:layout_marginRight                 離某元素右邊緣的距離
  android:layout_marginTop                   離某元素上邊緣的距離

3.AbsoluteLayout,絕對位置布局

     在此布局中的子項目的android:layout_x和android:layout_y屬性將生效,用於描述該子項目的座標位置。螢幕左上方為座標原點(0,0),第一個0代表橫座標,向右移動      此值增大,第二個0代表縱座標,向下移動,此值增大。在此布局中的子項目可以相互重疊。在實際開發中,通常不採用此布局格式,因為它的介面代碼過於剛性,以至於有可      能不能很好的適配各種終端。

4.FrameLayout,幀布局

      FrameLayout是五大布局中最簡單的一個布局,可以說是一個層布局,分層的,後面的將會蓋住前面放的。通常嵌套別的布局使用,做遮蓋效果。如果3個ImageView大小相同,那麼第一個ImageView被第二個ImageView完全遮擋,第三個ImageView遮擋了第二個ImageView的部分位置。如果是逐漸層小,那麼他們將以金字塔那樣的形式顯示。

5.TableLayout,表格版面配置

     Tablelayout類以行和列的形式對控制項進行管理,一個TableRow就代表TableLayout中的一行。每一行為一個TableRow對象,或一個View控制項。當為TableRow對象時,可在TableRow下添加子控制項,預設情況下,每個子控制項佔據一列。 當為View時,該View將獨佔一行。

     TableLayout的行數由開發人員直接指定,即有多少個TableRow對象(或View控制項),就有多少行。TableLayout的列數等於含有最多子控制項的TableRow的列數。如第一TableRow含2個子控制項,第二個TableRow含3個,第三個TableRow含4個,那麼該TableLayout的列數為4. 

  1、全域屬性也即列屬性,有以下3個參數:

  android:stretchColumns    設定可伸展的列。該列可以向行方向伸展,最多可佔據一整行。

  android:shrinkColumns     設定可收縮的列。當該列子控制項的內容太多,已經擠滿所在行,那麼該子控制項的內容將往列方向顯示。

  android:collapseColumns 設定要隱藏的列。

  樣本:

  android:stretchColumns="0"           第0列可伸展

  android:shrinkColumns="1,2"         第1,2列皆可收縮

  android:collapseColumns="*"         隱藏所有行

 

  2、儲存格屬性,有以下2個參數:

  android:layout_column    指定該儲存格在第幾列顯示 

  android:layout_span        指定該儲存格佔據的列數(未指定時,為1)

 

  樣本:

  android:layout_column="1"    該控制項顯示在第1列

  android:layout_span="2"        該控制項佔據2列

 

安卓筆記-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.