Flex中的低开销动态标签/ ViewStack?

时间:2009-12-17 22:43:50

标签: flex flash viewstack

假设我有一个像这样的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>

如果堆栈中有大量项目(每个项目都有大量的面板,数据绑定等),这将变得极其缓慢。无论viewStack本身的creationPolicy如何,Repeater似乎都会触发所有子节点的创建。

这个效率问题是否有现成的解决方案?我可以想一些使用自定义组件解决它的方法,但我想知道是否有一个现成的解决方案,以确定内部值真正需要动态(由ArrayCollection支持)这样的情况。

2 个答案:

答案 0 :(得分:2)

假设除了显示在其中的某些特定数据之外,所有堆叠视图都是相同的,可能的解决方案是放弃视图堆栈并设置所有控件以绑定到数组集合,然后使用任何控件来更改viewstack可以改为更新你的数组集合。

答案 1 :(得分:0)

尝试使用带有itemRenderer的List。中继器以糟糕的表现而臭名昭着。