说明:线性布局是最常用的布局,其包含的所有View会按照线性来排列。
需要注意的就是四个比较常用的xml属性:
对应方法:setGravity(int)
说明:这个属性设置布局内组件的对齐方式,支持以下属性值:
属性值 | 作用 |
---|---|
top | 将对象放在其容器的顶部,不改变其大小 |
bottom | 将对象放在其容器的底部,不改变其大小 |
left | 将对象放在其容器的左侧,不改变其大小 |
right | 将对象放在其容器的右侧,不改变其大小 |
left | 将对象放在其容器的左侧,不改变其大小 |
center_vertical | 将对象纵向居中,不改变其大小 |
center_horizontal | 将对象横向居中,不改变其大小 |
center | 将对象横纵向居中,不改变其大小 |
fill_vertical | 必要的时候增加对象的纵向大小,以完全充满其容器 |
fill_horizontal | 必要的时候增加对象的横向大小,以完全充满其容器 |
fill | 必要的时候增加对象的横纵向大小,以完全充满其容器 |
clip_vertical | 附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容。 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部。 |
clip_horizontal | 附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容。 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧。 |
以上属性值可以多选,中间用“|”分隔。
对应方法:setOrientation(int)
说明:这个属性设置LinearLayout中布局的排列方式,支持horizontal(水平排列)和vertical(垂直排列)两种属性值,默认为垂直排列。
注意:需要特别说明的是,orientation的值会影响到gravity的设置。
只有orientation设置为vertical时,才可以使用跟水平方向有关的布局,比如:left;
只有orientation设置为horizontal时,才可以使用跟垂直方向有关的布局,比如:bottom;
也就是说,只有与orientation值相反的gravity属性值才可以起作用
说明:看名字就与android:gravity很像,但两者还是有区别的。
android:gravity是对该View中内容摆放位置的设置,比如:LinearLayout中button的摆放位置,默认为从左上角开始;
android:layout_gravity是相对与该View的父View来说的,说明该元素显示在父View中的摆放位置,比如:button想要摆放在LinearLayout的底部。
说明:指定改View在LinearLayout中所占的权重。
这里的权重是给组件分配完之后的剩余空间比重。
注意:实际开发时,我们不能将组价需要设置权重的方向设置宽/高度。
详情可以去xiaanming的博客去了解,这里不做太多说明
所以,如果我们想让组件在水平方向上按比例排列,就需要把组件的android:layout_width属性设为0dp。
蝈蝈俊的技术心得:android:layout_gravity 和 android:gravity 的区别
Mobile Internet developer:Android 对Layout_weight属性完全解析以及使用ListView来实现表格
《疯狂Android讲义(第二版)》 李刚 《2.2.1 线性布局》 电子工业出版社
原文地址:http://blog.csdn.net/j_bing/article/details/45697475