从RelativeLayout中删除规则

发布于 2024-11-30 22:01:02 字数 501 浏览 0 评论 0 原文

我在 XML 中将书签 ImageButtonALIGN_WITH_PARENT 设置为 true

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

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

,则该规则不适用(在我的布局中,我可以看到该规则仍然处于活动状态)->布局不好。如果我在布局编辑器中手动执行此操作(某种“模拟”,将“与父对齐”设置为 false),则我的布局很好,会导致出现此代码。有问题。

什么?

I have bookmark ImageButton with ALIGN_WITH_PARENT set to true in XML.

If I programatically do (I want to remove that rule)

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

The rule just doesn't apply (in my layout I can see that rule is still active) -> layout isn't good. If I manually do it (some sort of "simulation", set ALIGN WITH PARENT to false) in my Layout Editor, my layout is fine which leads to this code up there. Something is wrong.

What?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

只为守护你 2024-12-07 22:01:02

(我相信是暂时的)解决方案是将 ImageButton 包装在一个虚拟的relativelayout中,然后获取该虚拟布局的参数并添加或删除规则。这样就可以正常工作了。

(I believe temporary) Solution is to wrap up that ImageButton in one dummy RelativeLayout and then take the params of that dummy layout and add or remove rules. That way it's working just fine.

追我者格杀勿论 2024-12-07 22:01:02

尝试使用 setLayoutParams() “nofollow">requestLayout() 方法:

bookmark.requestLayout();

来自 API 文档:

某些内容发生更改导致该视图的布局无效时调用此方法。这将安排视图树的布局过程。

Insead of calling setLayoutParams(), try to use requestLayout() method:

bookmark.requestLayout();

From API docs:

Call this when something has changed which has invalidated the layout of this view. This will schedule a layout pass of the view tree.

望她远 2024-12-07 22:01:02

只需在 params 上调用 removeRule() 函数即可。

例如,

params.removeRule(RelativeLayout.CENTER_IN_PARENT);

simply call removeRule() function on params.

for example,

params.removeRule(RelativeLayout.CENTER_IN_PARENT);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文