android:layout_centerHorizontal 水平居中 android
android:layout_centerVertical 垂直居中 框架
android:layout_centerInparent 相對於父元素徹底居中 佈局
android:layout_alignParentBottom 貼緊父元素的下邊緣 spa
android:layout_alignParentLeft 貼緊父元素的左邊緣 .net
android:layout_alignParentRight 貼緊父元素的右邊緣 對象
android:layout_alignParentTop 貼緊父元素的上邊緣 blog
android:layout_alignWithParentIfMissing 若是對應的兄弟元素找不到的話就以父元素作參照物
第二類:屬性值必須爲id的引用名「@id/id-name」 (僅RelativeLayout有效)繼承
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 離某元素右邊緣的距離
ip
android:layout_marginTop 離某元素上邊緣的距離 get
2、五種佈局
(1)LinearLayout
簡介:
LinearLayout是線性佈局控件,它包含的子控件將以橫向或豎向的方式排列(經過android:orientation屬性來控制),按照相對位置來排列全部的widgets或者其餘的containers,超過邊界時,某些控件將缺失或消失。所以一個垂直列表的每一行只會有一個widget或者是container,而無論他們有多寬,而一個水平列表將會只有一個行高(高度爲最高子控件的高度加上邊框高度)。LinearLayout保持其所包含的widget或者是container之間的間隔以及互相對齊(相對一個控件的右對齊、中間對齊或者左對齊)。
部分屬性:
android:layout_gravity 說明元素顯示在父元素的什麼位置
android:gravity 說明元素相對於自己的位置,便是裏面的文本相對於自己的位置。(如不設置,默認是在左側)
{
可選值[多選時用「|」分開]
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要讓文本垂直/水平居中顯示,有兩種狀況須要考慮:
一、layout_width/layout_height爲wrap_content,此時要讓TextView在父控件上居中顯示,必須設置layout_gravity=」center」。
二、layout_width/layout_height爲fill_parent,此時因爲TextView已佔據父窗體全部空間,必須設置gravity=」center」。
}
android:orientation 線下佈局以列或行來顯示內部的子元素
android:layout_weight子元素對未佔用空間水平或垂直分佈的權重
當 android:orientation="vertical" 時, 只有水平方向的設置才起做用,垂直方向的設置不起做用。即:left,right,center_horizontal 是生效的。
當 android:orientation="horizontal" 時, 只有垂直方向的設置才起做用,水平方向的設置不起做用。即:top,bottom,center_vertical 是生效的。
LinearLayout設置屏幕分割線方法:http://blog.csdn.net/mypanlong/article/details/42424271
(2)RelativeLayout
簡介:
相對佈局容器內子組件的位置老是相對於兄弟組件、父容器來肯定的。RelativeLayout提供了一個內部類RelativeLayout.LayoutParams,該類提供了大量的XML屬性來控制RelativeLayput佈局容器中
子組件的佈局分佈。
屬性:
android:paddingleft(paddingright/paddingtop/paddingbottom):控件內部內容(如文本距離該控件的邊距);
android:paddingstart(paddingend):左右對齊時使用。左對齊時:paddingstart對應paddingleft;paddingend對應paddingright;右對齊時則恰好相反;
android:layout_margin:該控件距離父控件的邊距;(layout_marginleft/layout_marginright/layout_margintop/layout_marginbottom
android:gravity:設置容器中的內容的位置,默認爲靠左;
android:layout_gravity:設置容器中內容相對於容器的位置(沒法在relativelayout中使用);
還有屬性見1、公共屬性。
(3)TableLayout
簡介:
Tablelayout類以行和列的形式對控件進行管理,每一行爲一個TableRow對象,或一個View控件。
當爲TableRow對象時,可在TableRow下添加子控件,默認狀況下,每一個子控件佔據一列。
當爲View時,該View將獨佔一行。
屬性:
android:collapseColumns:將TableLayout裏面指定的列隱藏,如有多列須要隱藏,請用逗號將須要隱藏的列序號隔開。 ex: android:collapseColumns="*" 隱藏全部行
android:stretchColumns:設置指定的列爲可伸展的列,以填滿剩下的多餘空白空間,如有多列須要設置爲可伸展,請用逗號將須要伸展的列序號隔開。 ex: android:stretchColumns="0" 第0列可伸展
android:shrinkColumns:設置指定的列爲可收縮的列。當可收縮的列太寬(內容過多)不會被擠出屏幕。當須要設置多列爲可收縮時,將列序號用逗號隔開。ex: android:shrinkColumns="1,2" 第1,2列收縮
android:layout_colum:設置該控件在TableRow中指定的列。 ex: android:layout_column="1" 該控件顯示在第1列
android:layout_span:設置該控件所跨越的列數。 ex: android:layout_span="2" 該控件佔據2列
(4)FrameLayout
簡介:
FrameLayout幀佈局在屏幕上開闢出了一塊區域,在這塊區域中能夠添加多個子控件,可是全部的子控件都被對齊到屏幕的左上角。幀佈局的大小由子控件中尺寸最大的那個子控件來決定。若是子控件同樣大,同一時刻只能看到最上面的子控件。
FrameLayout繼承自ViewGroup,除了繼承自父類的屬性和方法,FrameLayout類中包含了本身特有的屬性和方法
屬性:
android:foreground:設置該幀佈局容器的前景圖像
:設置前景圖像顯示的位置
(5)GridLayout
跟LinearLayout(線性佈局)同樣,他能夠設置容器中組件的對齊方式,容器中的組件能夠跨多行也能夠跨多列(相比TableLayout直接放組件,佔一行相比較)
屬性:
android:layout_gravity center,left,right,buttom等,若是想同時用兩種的話:eg: buttom|left設置組件的排列方式
android:rowCount ex: android:rowCount="4" 設置網格佈局有4行
android:columnCoun ex: android:columnCount="4" 設置網格佈局有4列
android:layout_rowSpan ex: android:layout_rowSpan = "2" 縱向橫跨2行
android:layout_columnSpan ex: