【发布时间】:2013-03-31 11:01:24
【问题描述】:
我开发了一个 flex 应用程序,其中包含一个显示项目列表的 itemrenderer。问题是如果我选择一个项目,背景会突出显示,如果我转到另一个页面并再次返回同一页面,我之前选择的项目仍然突出显示。有什么解决方案可以让我在每次打开页面时刷新 itemrenderer 以清除突出显示的背景?
【问题讨论】:
标签: actionscript-3 apache-flex actionscript flex4 flex3
我开发了一个 flex 应用程序,其中包含一个显示项目列表的 itemrenderer。问题是如果我选择一个项目,背景会突出显示,如果我转到另一个页面并再次返回同一页面,我之前选择的项目仍然突出显示。有什么解决方案可以让我在每次打开页面时刷新 itemrenderer 以清除突出显示的背景?
【问题讨论】:
标签: actionscript-3 apache-flex actionscript flex4 flex3
因此,当您说“转到另一个页面并返回”时,听起来您正在导航到应用程序中的某个其他屏幕并返回到包含列表的屏幕。该项目显示已选中,因为您的视图正在被重复使用。这不是从头开始创建的新视图...
要从列表中删除选择,您可以将列表的selectedIndex 设置为-1,或者甚至将列表的selectedItem 设置为null(或者可能undefined 作为文档状态)。您可以在导航到下一个屏幕之前或导航回列表时立即执行这些操作。
还有其他几种方法可以解决这个问题:
但设置selectedIndex 或selectedItem 将是最有效的方法。
【讨论】:
正如苏尼尔所建议的那样。离开列表时尝试重置列表的数据提供者。设置 list.dataProvider = new ArrayCollection()。或者如果你有数据 list.DataProvider = arrayCollectionThatYouHave
注意:如果您希望每次用户在视图堆栈中打开此视图时都刷新整个屏幕数据,则侦听“显示”事件并重置数据提供程序并在此事件中设置默认值。
【讨论】: