研究了一下,写个比较完整的总结,分四种情况
1、 控件中只有一个设置layout_weight属性的控件,那么它将独占剩余空间
2、 layout_width或者 layout_height 设置为"0dp"
严格按照layout_weight设置的比例,即我们的正常理解
3、 layout_width或者 layout_height 设置为 wrap_content
wrap_content 内容显示优先,剩余的空间再按比例划分,即看起来也是有可能不按比例
4、 layout_width或者 layout_height 设置为 fill_parent或者match_parent
用栗子说明,假设有两个控件垂直分布,weight分别设置为1,2
剩余空间: 1 * parentHeight - 2 * parentHeight = -1 * parentHeight
控件A:1 * parentHeight + (-1 * parentHeight * 1/3) = 2/3 * parentHeight
控件B:1 * parentHeight + (-1 * parentHeight * 2/3) = 1/3 * parentHeight
比值为2 : 1,所以看起来跟我们想象的1:2正好相反