android的weight

来源:互联网 发布:淘宝同城发货不用快递 编辑:程序博客网 时间:2024/05/22 05:26

计算公式为:
linearLayout中包含有weight的child时,linearLayout会measure两次:
设屏幕宽度为X
第一次:textview1的measuredWidth为X,textview2,textview3也为X (因为用了weight,所以linearLayout每次measure child时不考虑前一个已经占用的大小),total_width为3X
第二次:计算delta=x-total_width=-2x,
然后会将
textview1的宽度设为x+delta*1/6=2/3x, 
textview2的宽度为 x+delta*1/3=1/3x
textview3的宽度为 x+delta*1/3=0x (即第三个textview3不显示)

同理:
textview1的宽度设为x+delta*2/9=5/9x, 
textview2的宽度为 x+delta*3/9=3/9x
textview3的宽度为 x+delta*4/9=1/9x 

如果需要将textview1:textview2:textview3 = 1:2:3(实际占据屏幕的比例) 
可以这么算:1/6:2/6:3/6 --> 分母-分子-->5:4:3(即 layout_weight值)

 

http://blog.sina.com.cn/s/blog_7cd0c0a80100zmfe.html

0 0