从RelativeLayout中删除规则

时间:2011-08-19 10:10:00

标签: android relativelayout

我的书签 ImageButton ALIGN_WITH_PARENT 在XML格式中设置为 true

如果我以编程方式执行(我想删除该规则

RelativeLayout.LayoutParams params = (LayoutParams) bookmark.getLayoutParams(); 
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 0);
bookmark.setLayoutParams(params);

该规则不适用(在我的布局中,我可以看到该规则仍然有效) - >布局不好。如果我在布局编辑器中手动执行此操作(某种“模拟”,将ALIGN WITH PARENT设置为 false ),我的布局很好,这导致此代码。出了点问题。

什么?

3 个答案:

答案 0 :(得分:0)

(我相信是临时的)解决方案是将ImageButton包装在一个虚拟RelativeLayout中,然后获取该虚拟布局的参数并添加或删除规则。这样它工作得很好。

答案 1 :(得分:0)

调用setLayoutParams()的Insead,尝试使用requestLayout()方法:

bookmark.requestLayout();

来自API文档:

  

某些内容发生变化而导致此视图的布局无效时,请调用此方法。这将安排视图树的布局传递。

答案 2 :(得分:0)

只需在removeRule()上调用params功能。

例如,

params.removeRule(RelativeLayout.CENTER_IN_PARENT);