0

问题:

我有一个类,继承自LinearLayout. 此类在构造函数中创建一些按钮,并使用addChild(). 我已经重载了方法onSizeCHanged,我想在这个方法中添加一些孩子。但是在单击其他按钮之一之前,更改不会生效。

所以,我需要按下一些现有的按钮,然后出现我添加的视图。(顺便说一句,只有带有 ontouchlistener 的按钮才能做到这一点。没有监听器的按钮不能使新视图出现)。

如何在onSizeChange方法中添加视图以使其立即出现?

加法:方法forceLayout()requestLayout()不能工作。

4

2 回答 2

0

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

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

于 2012-04-20T11:37:16.683 回答
0

我自己没有扩展 LinearLayout,但我读了一些类,我认为你需要重写 onLayout() 并在其中添加你的子视图。检查文档,看看它是否有帮助

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

于 2012-04-19T18:24:30.743 回答