0

假设我有一个这样的 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 支持)的情况是否有现成的解决方案。

4

2 回答 2

2

假设您的所有堆叠视图都是相同的,除了其中显示的一些特定数据之外,一个可能的解决方案是放弃视图堆栈并设置所有控件以绑定到数组集合,然后您将用于更改视图堆栈的任何控件都可以代替更新您的数组集合。

于 2009-12-17T22:53:22.847 回答
0

尝试使用带有 itemRenderer 的列表。中继器以糟糕的性能而臭名昭著。

于 2009-12-18T07:04:58.050 回答