LinearLayout计算权重weight

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。可以尝试用不同的设置进行结果对比。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容