2012-05-19 1 views
1

Я использую IconItemRenderer в мобильном проекте. Я поместил некоторые записи в класс и заметил, что layoutContents вызывается дважды для каждого элемента при создании представления.Почему мобильные компоненты Flex гибнут в два раза?

Я также заметил, что событие шоу срабатывает дважды для просмотра.

Это, очевидно, неэффективно. Я не думаю, что это все, что я сделал (я стараюсь не изменять свойства в таких событиях, как createComplete и viewActivate), но могу ли я предотвратить дублирование усилий?

ответ

2

ItemRenderer будет создан один раз для каждого видимого элемента вашего DataProvider. Поэтому убедитесь, что вы не путаете разные экземпляры dataProvider. Похоже, вы уже это поняли.

Метод layoutContents() вызывается из метода updateDisplayList() мобильного элемента itemRenderers. updateDisplayList() можно назвать много во время «жизненного цикла» компонента. Вам нужно будет пройти полный жизненный цикл компонента, чтобы точно определить, что происходит. More information here.

Вам нужно будет выяснить, что недействительно отображать список, заставляя updateDisplayList() выполнять снова.

Независимо от того, вводит ли это неэффективность в приложение, открыт для интерпретации. Это зависит от того, что происходит в методе updateDisplayList()/layoutContents().