我有一个从SurfaceView继承的自定义视图,并且在同一个RelativeLayout中有EditText (自定义视图和EditText在布局的xml中都是兄弟)。当我使EditText可见时,用这种方式
setVisibility(View.VISIBLE);自定义视图接收onDraw(Canvas c)方法的连续调用。有人知道为什么吗?我从来没有显式地调用invalidate()。
发布于 2013-03-23 04:03:50
这里没有任何问题。这是正常行为。onDraw()会被调用很多次,因为每当它觉得需要显示更改时,它都会重新绘制您的活动。有很多复杂的内部算法来决定何时以及为什么重新绘制活动。Android会为我们解决这个问题,我们不需要担心它。
一旦活动被重新绘制,它的所有子元素也会被重新绘制。这会发生在所有视图中,而不是自定义视图中。请放心,您的代码没有任何问题。
有兴趣了解更多关于内部结构的知识吗?查看View类的source code!
https://stackoverflow.com/questions/15578525
复制相似问题