Layout_weight的属性一直很奇怪特别对于安卓开发的新手更摸不着头绪,本文根据作者的实践经验,通过完整的代码对安卓其进行深入介绍
方法/步骤
1必须要说明:Layout_weight只能用在线性布局;表格布局
以及嵌套在前两种布局中的其他布局
2例1
设置两个:android:layout_width="wrap_content"android:layout_height="wrap_content"。
属性的按钮,运行后显示
可以发现每个按钮根据自身内容设置了长宽,布局中剩余空间不变
3再看下面代码
例2
我们为每个按钮设置了android:layout_weight="1"属性运行效果
可以看到两个按钮将水平方向上剩余空间给平均分配了再看下面代码例3我们设置
按钮1android:layout_weight="1"。
按钮2android:layout_weight="2"。
运行效果
可以看到按钮2占用的空间要比按钮1大。例4
按钮1android:layout_weight="fill_parent"按钮2android:layout_weight="fill_parent"。
在例4中我们将例3中layout_width的值改为"fill_parent"其他不变运行结果如下
4结论。我们现在假设按钮1与按钮2在android:layout_width="wrap_content"时宽=w。布局管理器的宽为l.按钮1的layout_weight为1,按钮2的为2
1.当按钮的宽为w时
按钮1分得的空间为w+1/(1+2)*(l-2*w)
按钮2分得的空间为w+2/(1+2)*(l-2*w)
由于2*w2.当按钮宽为l时按钮1分得的空间为l+1/(1+2)*(l-2*l)=l+1/3(-l)=2/3l按钮2分得的空间为l+2/(1+2)*(l-2*l)=l+2/3(-l)=1/3l因为l-2l<0所以按钮1的值为2/3l,按钮2的值为1/3l了,所以按钮1的宽要大于按钮2。
2.当按钮宽为l时
按钮1分得的空间为l+1/(1+2)*(l-2*l)=l+1/3(-l)=2/3l
按钮2分得的空间为l+2/(1+2)*(l-2*l)=l+2/3(-l)=1/3l
因为l-2l<0所以按钮1的值为2/3l,按钮2的值为1/3l了,所以按钮1的宽要大于按钮2。
标签:安卓,layout,weight