在DataGroup中使用自定义itemrenderer时,如何区分数据提供程序更新和要回收的itemrender?
我已经覆盖了自定义项呈示器的set data函数,但是我发现在对用作DataProvider的ArrayCollection进行更改时,某些项呈示器未分配与更新之前相同的对象。这使我几乎不可能区分数据更新和被回收的项目。此外,数据似乎永远不会被设置为value = null,因此似乎也是如此。
有什么想法吗?
答案 0 :(得分:1)
我不确定你的确切要求。
渲染器回收是更改渲染器数据的过程,通常是在滚动基于列表的类时。这是出于性能原因,因此只显示在scree上显示的项目,而不是屏幕上显示的项目。渲染器回收用于模拟滚动列表而不实际执行此操作。
当您替换dataProvider时,它会更新所有渲染器。更改dataProvider时,它可能会更新某些渲染器,具体取决于更改的内容。我已经浏览了dataGroup代码,因此我不确定它对更新的确切作用,但Halo listBased类实现了collectionChange事件处理程序来处理这些更改。我怀疑DataGroup做了类似的事情。
为什么您需要知道渲染器数据的更改原因?渲染器应该只关心它被更改了。
答案 1 :(得分:0)
有一个dataChange事件在对{data}提供程序进行更改时会冒泡。
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true" width="142" height="22" dataChange="WHATEVERYOUWANT"