摘自:安卓APP_ 布局(1)—— LinearLayout
作者:丶PURSUING
发布时间: 2021-04-05 16:46:22
网址:https://blog.csdn.net/weixin_44742824/article/details/115442240
LinearLatout
- 一、orientation:布局中组件的排列方式
- 二、gravity与layout_gravity:组件的位置
- 三、divider:分割线
- (1)用图片做分割线
- (2)用view绘制做分割线
- 四、layout_weight权重
- 注意1:剩余空间
- 注意2:原有的基础上
- 注意3:权重针对于排列方式
- 实际开发时,权重这样用
一、orientation:布局中组件的排列方式
二、gravity与layout_gravity:组件的位置
(1)gravity
:控件组件所包含的所有子元素的对齐方式,可用|
进行多个组合:
(2)layout_gravity
:控制该组件在父容器里的对齐方式
layout_gravity
的设置会很大程度上受到上面所提的layout
的影响:
比如当layout
设置为垂直排列时,其子元素就是从上到下进行排列的,留给红色色块的可调范围其实就仅为它所在的水平区域,如图:
三、divider:分割线
(1)用图片做分割线
<!--引用图片做分割线-->
<!--设置分割线位于空间中间-->
<!--分割线距离边缘的距离为100dp-->android:divider="@drawable/divider"
android:showDividers="middle"
android:dividerPadding="100dp"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
具体效果如下图:
(2)用view绘制做分割线
当然了,分割线还可以这样做:直接通过view
进行绘制
四、layout_weight权重
控件的最终大小 = 原来的大小 × 权重
有时候我们有这样的需求:在一个布局中有两个控件,第一个控件的大小随着内容而变化,此时又希望第二个控件把剩余的布局空间全部占满。
这时候第二个控件的大小就不好把握,用layout_weight
就能满足这个需求。
注意1:剩余空间
在下图中,把绿色布局的权重设置为1,分别调整红色布局的高度为100,500,700,900。
值得注意的是:红色设置权重为1,针对的是剩余的空间,在红色布局高度为900时,没有了剩余空间,绿色自然就没有显示。
注意2:原有的基础上
在下图中,我们设置绿色与蓝色的比重分别是2:1,但我们发现,当调整蓝色布局的高度时,这个所占的比例发生了变化。所以权重≠比例
比如考试成绩的权重,总分 = 语文×0.2 + 数学×0.4 + 英语×0.2 + 体育×0.2
总分并不止和权重有关,还与原有的分数有关!!
注意3:权重针对于排列方式
当总的容器布局layout为水平时,权重就针对于水平。垂直时则针对于垂直方向。
实际开发时,权重这样用
在 注意(2) 中,我们设置权重最终其实就是想要比例,但会受到基础值的影响,还要计算,真麻烦,那当然是有好用的方法:
把子元素的高度全部设置为0,如下图:这样就是权重=比例