在android中的布局有五大類,有的時候你可能用到一種,但有的時候你也可能需要兩種或者三種布局同時一起使用。這五種布局為別為:LinearLayout(線性布局),FrameLayout(架構布局),RelativeLayout(相對布局),TableLayout(表格版面配置),AbsoluteLayout(座標布局);
LinearLayout:被稱為線性布局,分為水平和垂直,設定的垂直或水平的屬性值,來排列所有的子項目。所有的子項目都被堆放在其它元素之後,因此一個垂直列表的每一行只會有一個元素,而不管他們有多寬,而一個水平列表將會只有一個行高(高度為最高子項目的高度加上邊框高度)。LinearLayout保持子項目之間的間隔以及互相對齊(相對一個元素的靠右對齊、中間對齊或者靠左對齊)。
FrameLayout:被稱為架構布局,預先在螢幕中預留空白處,之後你可以在其中填充一個單一對象。比如,一張你要發布的圖片。所有的子項目將會固定在螢幕的左上方;你不能為FrameLayout中的一個子項目指定一個位置。後一個子項目將會直接在前一個子項目之上進行覆蓋填充,把它們部份或全部擋住(除非後一個子項目是透明的)。
RelativeLayout:相對布局,可指定某元素相對於其他的元素的位置,可以通過layout_below="相對控制項"。可以以靠右對齊,或上下,或置於螢幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在螢幕的中央,那麼相對於這個元素的其它元素將以螢幕中央的相對位置來排列。如果使用XML 來指定這個 layout ,在你定義它之前,被關聯的元素必須定義。
TableLayout:表格版面配置,將子項目的位置分配到行或列中。一個TableLayout 由許多的TableRow 組成,每個TableRow 都會定義一個 row (事實上,你可以定義其它的子物件,這在下面會解釋到)。TableLayout 容器不會顯示row 、cloumns 或cell 的邊框線。每個 row 擁有0個或多個的cell ;每個cell 擁有一個View 對象。表格由列和行組成許多的儲存格。表格允許儲存格為空白。儲存格不能跨列,這與HTML 中的不一樣。
AbsoluteLayout:座標布局,你給相應的控制項通過x,y座標來設定,(0, 0)為左上方,當向下或向右移動時,座標值將變大。AbsoluteLayout 沒有頁邊框,允許元素之間互相重疊(儘管不推薦)。我們通常不推薦使用 AbsoluteLayout ,除非你有正當理由要使用它,因為它使介面代碼太過剛性,以至於在不同的裝置上可能不能很好地工作
摘自:緣敘的部落格