子控件所占父容器剩余空间比=子控件本身宽/高(0或1)+(父容器剩余尺寸*控件所占权重比)
父容器剩余尺寸=1-子控件已占有的尺寸(每个子控件所占尺寸不是0就是1(match_parent))
需求:有3个子控件(比如3个Button),控件所占权重分别为 1,2,3,总的权重值:1+2+3=6
1>当把宽或者高设置为0dp时(此时每个子控件已占有的尺寸为0),所占空间比例如下
0 +(1-(0+0+0))*1/6 = 1/6
0 +(1-(0+0+0))*2/6 = 2/6
0 +(1-(0+0+0))*3/6 = 3/6
2>当把宽/者高设置为:"match_parent"(此时每个子控件已占有的尺寸为1)时,所占空间比例如下
①.1+(1-(1+1+1))*1/6=2/3
②.1+(1-3)*2/6=1/3
③.1+(1-3)*3/6=0
3>当子控件1和3的宽/者高设置为:"match_parent",而2的宽/者高设置为:"0"时,所占空间比例如下
①.1+(1-(1+0+1))*1/6=5/6
②.0+(1-2)*2/6=-2/6
③.1+(1-2)*3/6=3/6
父容器剩余尺寸=1-子控件已占有的尺寸(每个子控件所占尺寸不是0就是1(match_parent))
需求:有3个子控件(比如3个Button),控件所占权重分别为 1,2,3,总的权重值:1+2+3=6
1>当把宽或者高设置为0dp时(此时每个子控件已占有的尺寸为0),所占空间比例如下
0 +(1-(0+0+0))*1/6 = 1/6
0 +(1-(0+0+0))*2/6 = 2/6
0 +(1-(0+0+0))*3/6 = 3/6
2>当把宽/者高设置为:"match_parent"(此时每个子控件已占有的尺寸为1)时,所占空间比例如下
①.1+(1-(1+1+1))*1/6=2/3
②.1+(1-3)*2/6=1/3
③.1+(1-3)*3/6=0
3>当子控件1和3的宽/者高设置为:"match_parent",而2的宽/者高设置为:"0"时,所占空间比例如下
①.1+(1-(1+0+1))*1/6=5/6
②.0+(1-2)*2/6=-2/6
③.1+(1-2)*3/6=3/6