假設我有一個這樣的ViewStack:Flex中低開銷動態選項卡/ 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支持)。
是的,這聽起來像一個ArrayCollection持有很多的DisplayObject。這通常是不好的,因爲DisplayObjects包含很多開銷。如果可能,只將數據本身存儲在ArrayCollection中,並使用渲染器作爲組件。這是更高效的,因爲渲染器被重用。 – CookieOfFortune 2009-12-17 22:55:11