权重(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)比例的值越大,当前控件所占空间越大。
虽然大家一般都是通用案例一那种分配,但是真真切切的了解一个属性、一个控件,收获还是满满的。希望对你们有帮助 :)