我的书签 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 ),我的布局很好,这导致此代码。出了点问题。
什么?
答案 0 :(得分:0)
(我相信是临时的)解决方案是将ImageButton包装在一个虚拟RelativeLayout中,然后获取该虚拟布局的参数并添加或删除规则。这样它工作得很好。
答案 1 :(得分:0)
调用setLayoutParams()
的Insead,尝试使用requestLayout()
方法:
bookmark.requestLayout();
来自API文档:
当某些内容发生变化而导致此视图的布局无效时,请调用此方法。这将安排视图树的布局传递。
答案 2 :(得分:0)
只需在removeRule()
上调用params
功能。
例如,
params.removeRule(RelativeLayout.CENTER_IN_PARENT);