Android中weight属性计算原理
2016-12-17 本文已影响0人
Android大师哥
LinearLayout布局中,我们会经常用到weight属性,相信大家对他并不陌生,weight可以很好地对当前屏幕中的控件进行分配,在Android适配中起到很好的作用。但是weight属性具体的计算原理相信很多人并不是很清楚。
先上图片
同样设置的weight宽度比例,但是在布局中显示的比例却正好相反,原因就是因为weight的计算原理为:控件的原有宽度 + 剩余空间所占百分比的宽度
看下代码:
代码非常简单,就是一个线性布局放了两个Button,下面我们来计算下Button1的所占宽度,假设当前屏幕宽度为L,Button1的宽度就为:
L(当前Button1的宽度为match_parent)+( L(屏幕宽度) - 2L(两个Button的宽度))* 1/3 = 2/3L
如果当前width为0dp,那么Button1所占的宽度就为:
0 + (L - 0)* 1/3 = 1/3L