首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以编程方式删除在XML中定义的现有规则?

如何以编程方式删除在XML中定义的现有规则?
EN

Stack Overflow用户
提问于 2011-02-25 00:47:56
回答 2查看 34.5K关注 0票数 70

我有一个包含在相对布局中的线性布局。它在XML文件中被设置在另一个线性布局的右侧(这很好用)。在某些情况下,我想要在活动的onCreate期间更改布局的相对位置,因此我需要修改“右侧”参数以与另一个布局相关。我试着这样做:

代码语言:javascript
复制
    RelativeLayout.LayoutParams layoutParams;

    layoutParams = (RelativeLayout.LayoutParams) linearLayoutToMove
            .getLayoutParams();
    layoutParams.addRule(RelativeLayout.RIGHT_OF,
            R.id.new_ref_LinearLayout);

但它不起作用:o(

有什么线索吗?

EN

回答 2

Stack Overflow用户

发布于 2011-02-25 00:55:51

我觉得你需要打个电话:

relativeLayout.updateViewLayout(linearLayoutToMove, layoutParams);

在更改LayoutParams之后。

作为对编辑的响应,您可以使用以下命令创建新的LayoutParameters:

代码语言:javascript
复制
LinearLayout.LayoutParams = new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.FILL_PARENT,
    LinearLayout.LayoutParams.FILL_PARENT);

然后添加您的新规则。然后,使用前面提到的updateViewLayout()方法更新布局参数。

票数 3
EN

Stack Overflow用户

发布于 2011-02-25 00:54:13

将以下代码添加到现有代码中

linearLayoutToMove.setLayoutParams(layoutParams)

我认为这个应该可以完成工作。如果上面的代码行不起作用,请尝试在上面的代码行之后调用linearLayoutToMove.invalidate()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5107740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档