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

Android中LinearLayout中权重的算法<深入理解>

2017-03-12 16:03 477 查看
权重(layout_weight):即为当前线性布局指定方向(水平、竖直)上剩余空间的一个分配规则。

例:如水平方向上的线性布局LinearLayout控件L中,包含两个水平占用空间的控件A,B。
L控件:L控件宽度layout_width = width_l     //屏幕的宽度
A控件:a控件宽度layout_width = width_a    a控件权重layout_weight = weight_a
B控件:b控件宽度layout_width = width_b    b控件权重layout_weight = weight_b

L中子控件最终占用宽度 = 原有宽度(width_a)+剩余空间分配量

A所占宽度 = width_a + (width_l-width_a-width_b)*weight_a/(weight_a+weight_b)
B所占宽度 = width_b + (width_l-width_a-width_b)*weight_b/(weight_a+weight_b)


情况一:当L中内部子控件(A,B)的宽度之和大于L的总宽度时,即(width_l-width_a-width_b)<0时,weight_a/(weight_a+weight_b)比例的值越大,当前控件所占空间越小。

情况二:当L中内部子控件(A,B)的宽度之和小于L的总宽度时,即(width_l-width_a-width_b)>0时,weight_a/(weight_a+weight_b)比例的值越大,当前控件所占空间越大。

虽然大家一般都是通用案例一那种分配,但是真真切切的了解一个属性、一个控件,收获还是满满的。希望对你们有帮助 :)

(转载来自:http://blog.csdn.net/itermeng/article/details/52159997)大家可以详细的去看一看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐