如何在flex中刷新itemrenderer

Posted

技术标签:

【中文标题】如何在flex中刷新itemrenderer【英文标题】:How to refresh itemrenderer in flex 【发布时间】:2013-03-31 11:01:24 【问题描述】:

我开发了一个 flex 应用程序,其中包含一个显示项目列表的 itemrenderer。问题是如果我选择一个项目,背景会突出显示,如果我转到另一个页面并再次返回同一页面,我之前选择的项目仍然突出显示。有什么解决方案可以让我在每次打开页面时刷新 itemrenderer 以清除突出显示的背景?

【问题讨论】:

【参考方案1】:

因此,当您说“转到另一个页面并返回”时,听起来您正在导航到应用程序中的某个其他屏幕并返回到包含列表的屏幕。该项目显示已选中,因为您的视图正在被重复使用。这不是从头开始创建的新视图...

要从列表中删除选择,您可以将列表的selectedIndex 设置为-1,或者甚至将列表的selectedItem 设置为null(或者可能undefined 作为文档状态)。您可以在导航到下一个屏幕之前或导航回列表时立即执行这些操作。

还有其他几种方法可以解决这个问题:

不要重复使用视图 返回时重置列表中的 dataProvider 等等...

但设置selectedIndexselectedItem 将是最有效的方法。

【讨论】:

【参考方案2】:

正如苏尼尔所建议的那样。离开列表时尝试重置列表的数据提供者。设置 list.dataProvider = new ArrayCollection()。或者如果你有数据 list.DataProvider = arrayCollectionThatYouHave

注意:如果您希望每次用户在视图堆栈中打开此视图时都刷新整个屏幕数据,则侦听“显示”事件并重置数据提供程序并在此事件中设置默认值。

【讨论】:

以上是关于如何在flex中刷新itemrenderer的主要内容,如果未能解决你的问题,请参考以下文章

如何获取flex中是否修改了AdvancedDatagrid数据?

Flex:在列表项渲染器中缓存图像?

Flex 3和Flash播放器缓存

我将如何开始学习如何在 Flex 中编程? [关闭]

如何将叠加层悬停在flex容器中的flex项目上

如何在 Flex 中使用 UIComponent/Flash