Android更新视图树

时间:2012-04-19 16:30:05

标签: android view android-linearlayout

问题:

我有一个继承自LinearLayout的班级。 该类在构造函数中创建一些按钮,并使用addChild()将它们放入自身。 我重载了方法onSizeCHanged,我想在这个方法中添加一些孩子。 但是在点击其他按钮之前,更改无效。

所以,我需要按下一些现有的按钮,之后我添加的视图会出现。 (顺便说一句,只有带有ontouchlistener的按钮才能执行此操作。没有监听器的按钮无法显示新视图。)

如何在onSizeChange方法中添加视图以立即显示?

此外: 方法forceLayout()requestLayout()无效。

2 个答案:

答案 0 :(得分:0)

我自己没有扩展LinearLayout,但我在课堂上读了一下,我认为你需要覆盖onLayout()并在其中添加你的子视图。检查文档并查看是否有帮助

http://developer.android.com/reference/android/widget/LinearLayout.html#onLayout(boolean,%20int,%20int,%20int,%20int

答案 1 :(得分:0)

解决方案是:制作一个简单的布尔标志,将其设置为“true”im onSizeChanged并调用“invalidate”。

在方法“onDraw”中检查flag是否为true,如果是,则调用requestLayout。然后将flag设置为false。