dispatchDraw太多了,为什么?

时间:2010-08-22 17:02:01

标签: android

我正在使用两个ViewGroup作为子节点的活动,并且每个ViewGroup中都有一个或多个视图。我发现每次进行更改时都会调用dispatchDraw()四次,而当我使用ViewFlipper进行下一次或上一次调用时,会调用10次。它确实杀死了我的表现,但我无法通过Thread.dumpStack找到这些抽奖的来源。它们在堆栈转储中看起来都相同。有人知道Android什么时候会调用dispatchDraw,而dispatchDraw会调用onDraw视图?我知道dev开发指南中有一篇文章告诉我Android如何绘制视图,但它并没有告诉我WHEN。

1 个答案:

答案 0 :(得分:4)

只要需要重绘View,就会调用dispatchDraw()。这意味着每当调用invalidate()(或postInvalidate()时都会调用它。)请注意,当invalidate()调用发生在同一个UI线程事件上时,它们会被合并。

相关问题