2010-08-22 6 views
2

У меня есть активность с двумя ViewGroup, так как это дети, и каждая ViewGroup имеет одно или несколько просмотров. Я обнаружил, что dispatchDraw() вызывается четыре раза каждый раз, когда я делаю изменения, и 10 раз, когда я использую ViewFlipper для переключения на следующий или предыдущий. Это действительно убивает мою работу, но я не могу узнать, откуда взялись эти нити от Thread.dumpStack. Все они выглядят одинаково в дампе стека. Кто-нибудь знает, когда Android вызовет dispatchDraw, который в свою очередь вызывает onDraw просмотра? Я знаю, что в руководстве для разработчиков есть статья, рассказывающая мне, как Android рисует взгляды, но это не говорит мне КОГДА.Слишком много dispatchDraw, почему?

ответ

3

dispatchDraw() вызывается всякий раз, когда View необходимо перерисовать. Это означает, что он будет вызываться всякий раз, когда вызывается invalidate() (или вызывается postInvalidate().) Обратите внимание, что вызовы invalidate() объединяются, когда они происходят в одном и том же событии потока пользовательского интерфейса.

+1

Что означает u, означающее «то же самое событие с иг»? любой пример? – suitianshi

Смежные вопросы