Динамическая вкладка с низкими издержками / ViewStack во Flex? - PullRequest
0 голосов
/ 18 декабря 2009

Предположим, у меня есть ViewStack, подобный этому:

<mx:ViewStack id="s" left="5" right="5" bottom="5" top="0" width="100%" height="100%" creationPolicy="all"  minHeight="0">
    <mx:Repeater id="repeater" dataProvider="{dp}" height="100%" width="100%" minHeight="0">
        <mx:Box id="bx" label="{repeater.currentItem.label}" width="100%" height="100%" minHeight="0">
            <mx:Label minHeight="0" width="100%" height="100%" label="bob" />
        </mx:Box>
    </mx:Repeater>
</mx:ViewStack>

С большим количеством элементов в стеке (каждый из которых имеет большое количество панелей, привязку данных и т. Д.), Это становится чрезвычайно медленным. Повторитель, кажется, запускает создание всех дочерних элементов независимо от creationPolicy самого viewStack.

Есть ли готовое решение этой проблемы эффективности? Я могу придумать несколько способов решить его с помощью пользовательского компонента, но мне интересно, есть ли готовое решение для случаев, когда внутренние значения действительно должны быть динамическими (подкрепленными ArrayCollection), как это.

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

Предполагая, что все ваши стекированные представления идентичны, за исключением некоторых отображаемых в них конкретных данных, возможным решением было бы отказаться от стека просмотра и настроить все ваши элементы управления для привязки к коллекции массивов, а затем любой другой элемент управления, который вы использовали бы для изменения вашего Вместо этого viewstack может обновить вашу коллекцию массивов.

0 голосов
/ 18 декабря 2009

Попытка использовать список с itemRenderer. Репитеры печально известны своей ужасной производительностью.

...