您的位置:首页 > 移动开发 > Android开发

android:layout_weight新认识

2016-03-20 11:05 423 查看
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中生效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: