我有一个包含在相对布局中的线性布局。它在XML文件中被设置在另一个线性布局的右侧(这很好用)。在某些情况下,我想要在活动的onCreate期间更改布局的相对位置,因此我需要修改“右侧”参数以与另一个布局相关。我试着这样做:
RelativeLayout.LayoutParams layoutParams;
layoutParams = (RelativeLayout.LayoutParams) linearLayoutToMove
.getLayoutParams();
layoutParams.addRule(RelativeLayout.RIGHT_OF,
R.id.new_ref_LinearLayout);
但它不起作用:o(
有什么线索吗?
发布于 2011-02-25 00:55:51
我觉得你需要打个电话:
relativeLayout.updateViewLayout(linearLayoutToMove, layoutParams);
在更改LayoutParams之后。
作为对编辑的响应,您可以使用以下命令创建新的LayoutParameters:
LinearLayout.LayoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT);
然后添加您的新规则。然后,使用前面提到的updateViewLayout()方法更新布局参数。
发布于 2011-02-25 00:54:13
将以下代码添加到现有代码中
linearLayoutToMove.setLayoutParams(layoutParams)
我认为这个应该可以完成工作。如果上面的代码行不起作用,请尝试在上面的代码行之后调用linearLayoutToMove.invalidate()
。
https://stackoverflow.com/questions/5107740
复制相似问题