我有一个继承自SurfaceView的自定义View,我在同一个RelativeLayout中有EditText(自定义View和EditText都是布局xml中的兄弟)。 当我以EditWxt显示时,这样
setVisibility(View.VISIBLE);
自定义View接收onDraw(Canvas c)方法的连续调用。 有人知道为什么吗?我从未明确地调用invalidate()。
答案 0 :(得分:0)
这里没有任何错误。这在正常行为中。 onDraw()
被称为很多次,因为只要感觉需要显示更改,Android就会重新绘制您的活动。有许多复杂的内部算法可以决定重绘活动的时间和原因。 Android为我们照顾它,我们不需要担心它。
重绘一个活动后,它的所有子项也会重新绘制。这适用于所有视图而非自定义视图。请放心,您的代码没有任何问题。
有兴趣了解有关内部的更多信息吗?查看View类的source code!