標籤:
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五大布局