假设我有一个像这样的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支持)这样的情况。
答案 0 :(得分:2)
假设除了显示在其中的某些特定数据之外,所有堆叠视图都是相同的,可能的解决方案是放弃视图堆栈并设置所有控件以绑定到数组集合,然后使用任何控件来更改viewstack可以改为更新你的数组集合。
答案 1 :(得分:0)
尝试使用带有itemRenderer的List。中继器以糟糕的表现而臭名昭着。