Android UI之LinearLayout(线性布局)

说明:线性布局是最常用的布局,其包含的所有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 线性布局》 电子工业出版社

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。