標籤:相關 概念 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 布局(一)