LinearLayout计算权重weight
2017-12-27 本文已影响0人
JensenChenwd
1.当控件设置为wrap_content时:
直接按照weight设置的数值进行比例分配。
2.当控件设置为match_parent时:
三个控件均设置为match_parent,weight设置分别为1:2:3
这个时候就有疑问了,出来的结果是2:1,没有第三个控件,此时计算的方法如下:
step1
每一个都是match_parent,但是屏幕只有一个,所以是1-3=-2match_parent。
step2
三个控件设置的权重weight之比是1:2:3,所以分配的屏幕比例是1/6,2/6,3/6.
step3
按照顺序先得先分配,所以one:1-2match_parent1/6 =2/3match_parent,(1代表现有的一个屏幕), 同理two:1-2match_parent2/6 = 1/3match_parent,three:1-2match_parent*3/6 = 0match_parent。
step4
所以最后的结果就是one占用了2/3,two占用了1/3,three占用了0,结果就是2:1:0。可以尝试用不同的设置进行结果对比。