LinearLayout是線性布局控制項,它包含的子控制項將以橫向或豎向的方式排列,按照相對位置來排列所有的widgets或者其他的containers,超過邊界時,某些控制項將缺失或消失。因此一個垂直列表的每一行只會有一個widget或者是container,而不管他們有多寬,而一個水平列表將會只有一個行高(高度為最高子控制項的高度加上邊框高度)。LinearLayout保持其所包含的widget或者是container之間的間隔以及互相對齊(相對一個控制項的靠右對齊、中間對齊或者靠左對齊)。
API說明
xml屬性
android:baselineAligned:是否允許使用者調整它內容的基準。
android:baselineAlignedChildIndex:當一個線性布局與另一個布局是按基準對齊的一部分,它可以指定其內容的基準對齊。
android:gravity:指定如何在該對象中放置此對象的內容(x/y座標值)。
android:orientation:設定它內容的對其方向(橫向/豎向)。
LinearLayout還支援為其包含的widget或者是container指定填充權值。好處就是允許其包含的widget或者是container可以填充螢幕上的剩餘空間。這也避免了在一個大螢幕中,一串widgets或者是containers擠成一堆的情況,而是允許他們放大填充空白。剩餘的空間會按這些widgets或者是containers指定的權值比例分配螢幕。預設的 weight 值為0,表示按照widgets或者是containers實際大小來顯示,若高於0的值,則將Container剩餘可用空間分割,分割大小具體取決於每一個widget或者是container的layout_weight及該權值在所有widgets或者是containers中的比例。例如,如果有三個文字框,其中兩個指定的權值為1,那麼,這兩個文字框將等比例地放大,並填滿剩餘的空間,而第三個文字框不會放大,按實際大小來顯示。如果前兩個文字框的取值一個為2,一個為1,顯示第三個文字框後剩餘的空間的2/3給權值為2的,1/3大小給權值為1的。也就是權值越大,重要度越大。
如果LinearLayout包含子LinearLayout,子LinearLayout之間的權值越大的,重要度則越小。如果有LinearLayout A包含LinearLayout C,D,C的權值為2,D的權值為1,則螢幕的2/3空間分給權值為1的D,1/3分給權值為2的C。在LinearLayout嵌套的情況下,子LinearLayout必須要設定權值,否則預設的情況是未設定權值的子LinearLayout佔據整個螢幕。