0

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

突出显示了一个 itemrenderer 实例(复选框和标签)

4

2 回答 2

1

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

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

还有更多的方法可以解决这个问题:

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

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

于 2013-04-09T17:34:45.143 回答
0

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

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

于 2013-11-25T16:06:59.917 回答