android开发线性布局LinearLayout中的android:layout_weight属性使用注意事项

本文详细解析了在Android开发中使用线性布局时如何通过layout_weight属性来精确控制子视图的空间分配比例,尤其针对1:2:2:2:2:1等复杂比例的情况,介绍了计算权重的具体算法,并提供了将布局高度设为0dp以实现更精确的垂直比例控制的技巧。

在使用线性布局时可以使用layout_weight设置权重,但是其设置的权重为剩余空间的权重。
例如下面布局为将6个横向线性布局放在一个纵向线性布局中各个线性布局的 宽高均为android:layout_width=“match_parent”,android:layout_height=“match_parent”,想将其分成1:2:2:2:2:1的比例
在这里插入图片描述
第1行比重算法:
1match-6match=-5match :
剩余空间为-5match,按1:2:2:2:2:1的比例分为10份每份为5/10假设第一行比重为x,可知第一行目标宽度为1/10match,计算过程中match省略。
那么1+(-5/10)x=1/10 解得x=9/5

第2行比重算法:
1+(-5/10)x=2/10 解得x=8/5:
所以第一行和第二行的比重为9:8
如果将上面的高设置为“0dp”的时候, 第一行和第二行的比重为1:2效果相同。
结论:
所以当我们设置纵向线性布局(也就是线性布局的android:orientation=“vertical”)如果想要设置纵向比重,最好将空间的 android:layout_height设置为"0dp";如果设置横向线性布局(也就是线性布局的android:orientation=“horizontal”)如果想要设置纵向比重,最好将空间的 layout_width设置为"0dp"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值