layout的setWeightSum函数该怎么使用?

002大破天幕杀机 2010-05-06 06:23:11
我在xml里面设置控件的android:layout_weight="1",然后界面把多余的空间分配给控件。我想在java语言中实现同样的效果,不知道该如何设计?我查了一下LinearLayout的setWeightSum函数,参数设置为1,但是效果没有出来,不知道怎么回事?
...全文
938 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xing... 2011-12-21
  • 打赏
  • 举报
回复
试过好用
user_007 2011-08-31
  • 打赏
  • 举报
回复
如果想在在Linearlayout布局中动态变更weight值,需要设定Layoutparams的第3个参数,5楼nevercool 的答案是正确的,但是import package时要注意:
import android.widget.LinearLayout.LayoutParams;
aloie 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nevercool 的回复:]
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT, 1));
1就是weight
[/Quote]

毛病,错误答案也能给分,我这里也没有3个参数的构造方法
dengsongnanxxx 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nevercool 的回复:]
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT, 1));
1就是weight
[/Quote]乱说LayoutParams构造方法中没有三个参数的
yyy025025025 2010-06-17
  • 打赏
  • 举报
回复
当View的width,height为wrap_content或者0dp/px/sp时,若设定了weight,那么layout就会从剩余的未确定的layout中,根据weight的总和,也就是weightSum来计算需要为这样的View设置多少长宽。

width = leftWidth * weight / weightSum;
height = leftHeight * weight / weightSum;

另外weight的计算和布局,在linearLayout中Onlayout和OnMeasure函数。
nevercool 2010-06-17
  • 打赏
  • 举报
回复
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT, 1));
1就是weight
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vclongking 的回复:]

“我在xml里面设置控件的android:layout_weight="1",然后界面把多余的空间分配给控件”

什么意思 , 没听太懂?
[/Quote]
在xml中,LinearLayout里面每个控件设置属性android:layout_weight="1",这样在界面显示时,把每个控件均匀分布在LinearLayout中。

我主要想在java代码中实现同样的效果,看到LinearLayout类有一函数setWeightSum。不知道该函数如何使用?
  • 打赏
  • 举报
回复
自己顶一下
infsafe 2010-05-07
  • 打赏
  • 举报
回复
帮顶..
vclongking 2010-05-07
  • 打赏
  • 举报
回复
“我在xml里面设置控件的android:layout_weight="1",然后界面把多余的空间分配给控件”

什么意思 , 没听太懂?

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧