Layout基本屬性總結

在Android中,共有五種佈局方式,分別是:FrameLayout(框架佈局),LinearLayout (線性佈局),GridLayout(網格佈局),RelativeLayout(相對佈局),TableLayout(表格佈局),{AbsoluteLayout(絕對佈局)現不多使用}。

1、Layout公共屬性

 第一類:屬性值爲true或false ( 僅RelativeLayout中有效

    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:  

相關文章
相關標籤/搜索