如何在代码中动态设置layout_weight属性?

301

我如何从Java代码动态设置Android中按钮的layout_weight属性值?


它将非常类似于这个问题/答案:https://dev59.com/_W445IYBdhLWcg3w6eRo#4639012 和这个问题:https://dev59.com/g2445IYBdhLWcg3w6eXz#4637266 - Rich Schuler
如果您已经在布局(xml)文件中定义了视图,则创建新的LayoutParams会覆盖在xml文件中定义的其他参数。因此,首先应该使用“getLayoutParams”。请参见完整答案https://dev59.com/P2445IYBdhLWcg3w6eRo#38011495 - Shirish Herwade
13个回答

0

以下是 Kotlin 的实现方法:

val params = mButton.layoutParams as LinearLayout.LayoutParams
params.weight = 1.0f
mButton.layoutParams = params

0
如果您想为LinearLayout设置权重,则使用下面提到的代码,或者如果要为RelativeLayout设置权重,则将其替换为RelativeLayout。
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
1.0f

); YOUR_VIEW.setLayoutParams(param);


0
你可以尝试这种方法。 首先,获取与此按钮关联的LayoutParams。执行类型转换。
LinearLayout.LayoutParams linearLayoutParams = (LinearLayout.LayoutParams) button.getLayoutParams();

然后分配“weight”参数所需的值。

linearLayoutParams.weight = 5;

重新绘制布局。
button.requestLayout();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接