0

我有一个从 SurfaceView 继承的自定义视图,并且我在同一个 RelativeLayout 中有 EditText(自定义视图和 EditText 都是布局 xml 中的兄弟姐妹)。当我使 EditText 可见时,以这种方式

setVisibility(View.VISIBLE);

自定义视图接收 onDraw(Canvas c) 方法的连续调用。有人知道为什么吗?我从来没有明确地调用过 invalidate() 。

4

1 回答 1

0

这里没有任何问题。这是正常行为。onDraw()被调用了很多次,因为 Android 会在感觉需要显示更改时重绘您的活动。有许多复杂的内部算法可以决定何时以及为何重绘活动。Android 会为我们处理它,我们不需要担心它。

一旦重绘了一个活动,它的所有子项也会被重绘。所有视图都会发生这种情况,而不是自定义视图。请放心,您的代码没有任何问题。

有兴趣了解更多关于内部的信息吗?查看View 类的源代码!

于 2013-03-22T20:03:49.500 回答