【发布时间】:2015-06-09 19:06:59
【问题描述】:
我能够以编程方式构造一个包含数十个视图的 LinearLayout,并将其显示为 Activity 的内容视图。我能够遍历 LinearLayout 树并更改视图的背景颜色。
我可以在树中行走并调整视图的相对权重,并在 onCreate() 结束时调用 setContentView() 来显示树。
我有一个 seekBar 以交互方式调整颜色,这很有效。同样,我有一个 seekBar 以交互方式调整权重。我知道权重正在正确更改。
但不知何故,在交互式更改权重后视图不会重新显示,而在交互式更改颜色后会重新显示。
更改权重后,我必须做什么才能重新显示内容视图?
【问题讨论】:
-
您应该向我们展示您的代码。你试过 invalidate() 吗?
-
requestLayout()在更改的视图或父视图上 -
嗯,这是一个简单的问题,所以现在我认为发布代码会让我们陷入困境。我可以在调用 setContentView() 之前以编程方式更改权重,一切都很好。但交互地,内容视图不会重绘。显示器中的颜色会根据需要交互变化。根据您的建议,我在内容视图上尝试了 invalidate() ,但这似乎没有任何效果。
-
requestLayout() 似乎也没有帮助。运行它或 invalidate() 有什么技巧吗?我只是在整个内容视图树上调用它们,没有任何变化。
-
很难说发生了什么。没有看到任何代码,我们都只是猜测。
标签: android android-linearlayout android-layout-weight setcontentview