android:layout_weight新认识

android:layout_weight本来是一个按比例显示的属性,很好理解,不过当同时配置了android:layout_width="match_parent"时就出现了反常的情况。

这里对这个属性做些总结。顺便记录一下

android:layout_weight属性几种情况

一.当android:layout_width="0dip"时,按android:layout_weight分配显示,一切正常。

二.当android:layout_width="wrap_content"时,android:layout_weight属性不生效,可以理解为width优先级必weight高,先按width处理

三.当android:layout_width="match_parent"时,设置android:layout_weight属性,就可能出现反常的情况,主要针对这个情况做个说明。

第三种情况代码如下


理想情况是这样的


现实情况是这样的。。



原因是这个规则:width优先级比较高,先按match_parent分配,剩余的再按照weight分配

假设宽720dp

剩余 = 720 - (720*2)  =  -720

tv1 = 720  - (-720)*  1/ 3  =  2/3 * 720

tv2 = 720  - (-720)*  2/ 3  =  1/3 * 720

so     tv1 :tv2 = 2  : 1


所以要按比例使用weight属性时,设置android:layout_width="0dip"就可以了。还有一点weight属性只在LinnerLayout中生效。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值