標籤:linearlayout android ui
說明:線性布局是最常用的布局,其包含的所有View會按照線性來排列。
需要注意的就是四個比較常用的xml屬性:
1 android:gravity
對應方法:setGravity(int)
說明:這個屬性設定布局內組件的對齊,支援以下屬性值:
| 屬性值 |
作用 |
| top |
將對象放在其容器的頂部,不改變其大小 |
| bottom |
將對象放在其容器的底部,不改變其大小 |
| left |
將對象放在其容器的左側,不改變其大小 |
| right |
將對象放在其容器的右側,不改變其大小 |
| left |
將對象放在其容器的左側,不改變其大小 |
| center_vertical |
將對象縱向置中,不改變其大小 |
| center_horizontal |
將對象橫向置中,不改變其大小 |
| center |
將對象橫縱向置中,不改變其大小 |
| fill_vertical |
必要的時候增加對象的縱向大小,以完全充滿其容器 |
| fill_horizontal |
必要的時候增加對象的橫向大小,以完全充滿其容器 |
| fill |
必要的時候增加對象的橫縱向大小,以完全充滿其容器 |
| clip_vertical |
附加選項,用於按照容器的邊來剪下對象的頂部和/或底部的內容。 剪下基於其縱向對齊設定:頂部對齊時,剪下底部;底部對齊時剪下頂部;除此之外剪下頂部和底部。 |
| clip_horizontal |
附加選項,用於按照容器的邊來剪下對象的左側和/或右側的內容。 剪下基於其橫向對齊設定:左側對齊時,剪下右側;右側對齊時剪下左側;除此之外剪下左側和右側。 |
以上屬性值可以多選,中間用“|”分隔。
2 android:orientation
對應方法:setOrientation(int)
說明:這個屬性設定LinearLayout中布局的相片順序,支援horizontal(水平排列)和vertical(垂直排列)兩種屬性值,預設為垂直排列。
注意:需要特別說明的是,orientation的值會影響到gravity的設定。
只有orientation設定為vertical時,才可以使用跟水平方向有關的布局,比如:left;
只有orientation設定為horizontal時,才可以使用跟垂直方向有關的布局,比如:bottom;
也就是說,只有與orientation值相反的gravity屬性值才可以起作用
3 android:layout_gravity
說明:看名字就與android:gravity很像,但兩者還是有區別的。
android:gravity是對該View中內容擺放位置的設定,比如:LinearLayout中button的擺放位置,預設為從左上方開始;
android:layout_gravity是相對與該View的父View來說的,說明該元素顯示在父View中的擺放位置,比如:button想要擺放在LinearLayout的底部。
4 android:weight
說明:指定改View在LinearLayout中所佔的權重。
這裡的權重是給組件分配完之後的剩餘空間比重。
注意:實際開發時,我們不能將組價需要設定權重的方向設定寬/高度。
詳情可以去xiaanming的部落格去瞭解,這裡不做太多說明
所以,如果我們想讓組件在水平方向上按比例排列,就需要把組件的android:layout_width屬性設為0dp。
附:引用聲明
蟈蟈俊的技術心得:android:layout_gravity 和 android:gravity 的區別
Mobile Internet developer:Android 對Layout_weight屬性完全解析以及使用ListView來實現表格
《瘋狂Android講義(第二版)》 李剛 《2.2.1 線性布局》 電子工業出版社
Android UI之LinearLayout(線性布局)