android:layout_weight的值必须是整数吗?

 我来答
娱乐芽儿
2020-09-20 · TA获得超过1070个赞
知道小有建树答主
回答量:1093
采纳率:69%
帮助的人:77万
展开全部
layout_weight是权重的意思,也就是各个控件所占的比重,用在LinearLayout布局中。当我们使用layout_weight的时候,layout_width和layout_height有三种表示方法,我们以layout_width来作说明,分别来看:
第一种:
layout_width为0dp
我们在布局中添加两个button,宽度分别设置为0dp,weight设置为1:2,显示的布局所占的比重也是1:2。
第二种:
layout_width为wrap_content
我们可以看出,首先他们是先包含自己的内容,然后在剩下的空间中按照weight来划分,即剩下空间按照1:2来划分。
第三种:
layout_width为match_parent
我们可以看出,刚好和第一种layout_width为0dp的布局相反。
以上三种情况到底是怎么回事呢?下面来看一下layout_weight的具体计算方法。
layout_weight的意思:
如果一个控件申明了这个属性,那么这个控件的宽度(高度)等于它原有的长度(宽度或高度)加上剩余空间所占有的比重。例如:一个假设屏幕的宽度为L,
对于第一种情况,原有长度都等于0,所以它们的长度就是剩余空间所占有的比重,即第一个button所占有的比重为L*1/(1+2)=1/3L,第二个button所占有的比重为L*2/(1+2)=2/3L。
对于第三种情况,原有长度都等于match_parent即等于L,那么剩余空间的长度等于L-(L+L)=-L,对于第一个button所占有的比重为:-L*1/(1+2)=-1/3L,对于第二个button所占有的比重为:-L*2/(1+2)=-2/3L,所以它们的总长度等于原有的长度加上剩余空间所占有的比重即,L+(-1/3L)=2/3L和L+(-2/3L)=1/3L,即反过来的2;1就是出现的第三种情况。
引申点:
如果我们要求一个button所占的空间为整体的一半,那我们该如何布局呢?
其实很好搞,LinearLayout有个属性叫做weightSum,我们可以设置为2,然后将button的layout_weight属性设置为1,layout_width设置为0dp即可。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式