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

Androd layout_weight的真正含义

2015-10-22 15:18 447 查看

 layout_weight的真正含义

layout_weight的真实含义是:View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比

预设条件

TotalWidth =L

View1 weight=1 占比=1/3

View2 weight=2 占比=2/3

案例一

View1 0dp

View2 0dp

剩余空间 = L-(0+0)= L

View1
原有宽度=0
剩余宽度占比为(1/3)L= (1/3)L
最终实际显示宽度为  0+(1/3)L=(1/3)L
View12
原有宽度=0
剩余宽度占比为(2/3)L= (2/3)L
最终实际显示宽度为  0+(2/3)L=(2/3)L


案例二

View1 match_parent

View2 match_parent

剩余空间 = L-(L+L)= -L

View1
原有宽度=L
剩余宽度占比为 = -L(1/3)
最终实际显示宽度为  L+(1/3)-L=2/3L

View1 原有宽度=L
原有宽度=L
剩余宽度占比为 = -L(2/3)
最终实际显示宽度为L+2/3(-L)=1/3L。


案例三

View1 0dp

View2 match_parent

剩余空间 = L(0+L)= 0

View1
原有宽度=L
剩余宽度占比为 = 0
最终实际显示宽度为 0+0=0

View1 原有宽度=L
原有宽度=L
剩余宽度占比为 = 0
最终实际显示宽度为 L+0=L。


经使用View测试,以上案例实际情况与预计都相符.

其他情况

在使用TextView测试的情况下,我们会发现很多上述案例都与预计不符合。

原因是,当TextView的width设置为0dp时,在onMeasure时,仍然被分配wrap_content的宽度,所以在计算需要考虑这些因素.

参考: http://blog.csdn.net/yanzi1225627/article/details/24667299
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 布局