2010-08-22 43 views
2

我有兩個ViewGroup的活動,因爲它是子組件,每個ViewGroup都有一個或多個視圖。我發現dispatchDraw()每次改變時會被調用四次,而當我使用ViewFlipper翻轉到下一個或前一次時會調用10次。它真的殺死了我的表現,但我無法找到Thread.dumpStack的這些繪製位置。它們在堆棧轉儲中看起來完全相同。有誰知道Android何時會調用dispatchDraw,然後調用Draw的視圖?我知道在開發指南中有一篇文章告訴我Android如何繪製視圖,但它不告訴我什麼時候。太多dispatchDraw,爲什麼?

回答

3

dispatchDraw()在需要重繪View時調用。這意味着只要調用invalidate()(或postInvalidate()),就會調用它。注意,當invalidate()調用發生在同一個UI線程事件中時,它們會被合併。

+1

你是什麼意思'相同的UI線程事件'?任何例子? – suitianshi 2014-03-03 14:39:13

相關問題