Android ch06 Layout 布局(一)

來源:互聯網
上載者:User

標籤:相關   概念   androi   enter   中間   容器   引用   生效   base   

LinearLayout:線性布局

LinearLayout是線性布局控制項,它包含的子控制項將以橫向或豎向的方式排列,

按照相對位置來排列所有的widgets或者其他的containers,超過邊界時,某些控制項將缺失或消失。

因此一個垂直列表的每一行只會有一個widget或者是container,而不管他們有多寬,

而一個水平列表將會只有一個行高(高度為最高子控制項的高度加上邊框高度)。

LinearLayout保持其所包含的widget或者是container之間的間隔以及互相對齊(相對一個控制項的靠右對齊、中間對齊或者靠左對齊)。

LinearLayout 屬性詳解:

  android:layout_gravity 本元素相對於父元素的重力方向

  android:gravity 本元素所有子項目的重力方向

  android:orientation 線性布局以列或行來顯示內部子項目

  android:layout_weight 子項目對未佔用空間水平或垂直分配權重值


  當 android:orientation="vertical" 時, 只有水平方向的設定才起作用,垂直方向的設定不起作用。即:left,right,center_horizontal 是生效的。

  當 android:orientation="horizontal" 時, 只有垂直方向的設定才起作用,水平方向的設定不起作用。即:top,bottom,center_vertical 是生效的。


  android:layout_gravity 和 android:gravity 的區別

  android:gravity對元素本身起作用-本身元素顯示在什麼位置

  android:layout_gravity相對與它的父元素-元素顯示在父元素的什麼位置。

  如:Button控制項

  android:layout_gravity 表示button在介面上的位置

  android:gravity表示button上的字在button上的位置。

  可選值[多選時用“|”分開]

  top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。

  top 將對象放在其容器的頂部,不改變其大小.

  bottom 將對象放在其容器的底部,不改變其大小.

  left將對象放在其容器的左側,不改變其大小.

  right將對象放在其容器的右側,不改變其大小.

  center_vertical 將對象縱向置中,不改變其大小.

  垂直對齊:垂直方向上置中對齊。

  fill_vertical 必要的時候增加對象的縱向大小,以完全充滿其容器. 垂直方向填充

  center_horizontal 將對象橫向置中,不改變其大小水平對齊:水平方向上置中對齊

  fill_horizontal 必要的時候增加對象的橫向大小,以完全充滿其容器. 水平方向填充

  center 將對象橫縱置中,不改變其大小.

  fill 必要的時候增加對象的橫縱向大小,以完全充滿其容器.

  clip_vertical 附加選項,用於按照容器的邊來剪下對象的頂部和/或底部的內容. 剪下基於其縱向對齊設定:頂部對齊時,剪下底部;底部對齊時剪下頂部;除此之外剪下頂部和底部.垂直方向裁剪

  clip_horizontal 附加選項,用於按照容器的邊來剪下對象的左側和/或右側的內容. 剪下基於其橫向對齊設定:左側對齊時,剪下右側;右側對齊時剪下左側;除此之外剪下左側和右側.水平方向裁剪

 

例子

TextView要讓文本垂直/水平置中顯示,有兩種情況需要考慮:

  1、layout_width/layout_height為wrap_content,此時要讓TextView在父控制項上置中顯示,必須設定layout_gravity=”center”。

  2、layout_width/layout_height為fill_parent,此時由於TextView已佔據父表單所有空間,必須設定gravity=”center”。

 

RealtiveLayout :相對布局

  * 往往需要定義每一個控制項的資源 id 

  * 相對布局中的視圖組件是按相互之間的相對位置來確定的

  * 按照控制項之間的相互位置進行排布。存在一個參照物的概念

  * @+id : 表示的是在系統中本來不存在對應的id值,需要將這個id值添加到系統中。

  * @id : 表示從系統中除去已經添加好的 id.

  * alignBaseLine: 基準線對齊

  * 針對相對布局而言,一般都不會過多的給定很多相關聯的屬性。否則耦合性就會大大增加。

 

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 如果對應的兄弟元素找不到的話就以父元素做參照物

第二類:屬性值必須為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 本元素的右邊緣和某元素的的右邊緣對齊

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

Android ch06 Layout 布局(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.