我有一个活动,有两个viewgroup作为它的子视图,每个viewgroup都有一个或多个视图。我发现每次进行更改时,dispatchDraw()都会被调用四次,使用viewFlipper切换到next或previous时,会被调用十次。这确实影响了我的性能,但我无法通过thread.dumpstack找到这些绘图的来源。它们在垃圾堆里看起来都一样。有人知道Android什么时候会调用DispatchDraw,而DispatchDraw又会调用View的Draw吗?我知道《开发指南》上有一篇文章告诉我android是如何绘制视图的,但它没有告诉我什么时候。

最佳答案

每当需要重新绘制视图时,都会调用DispatchDraw()。这意味着无论何时调用invalidate()(或postinvalidate())它都将被调用。请注意,invalidate()调用在同一个ui线程事件上发生时是合并的。

关于android - dispatchDraw太多了,为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3542394/

10-09 00:00