actionscript-3 - 避免 Flex 4 中 Spark 列表中的 ItemRender 缓存

标签 actionscript-3 apache-flex flex4 itemrenderer flex-spark

我有两个带有自定义项目渲染器的 Spark 列表。我正在开发一款应用程序,该应用程序使用户能够将这些项目渲染器从一个列表拖动到另一个列表。当这些 IR 之一被放到新位置或另一个列表中时,我将更新数据提供程序:我从一个列表的数据提供程序中删除对象并将其添加到另一个列表的数据提供程序中。这工作正常。

问题在于,有时 IR 会被缓存,但根据其数据,它不会显示正确的信息。

如何强制列表从不缓存 IR,以便每次修改数据提供程序时,所有项目渲染都会重新创建所有 IR。性能不会成为问题,因为每个列表上的项目很少。

最佳答案

一些事情..

1) ItemRenderers 应始终被缓存[并重用]。这是使用 Flex 列表的首要好处之一。我怀疑您的 itemRenderer 实现不正确,以至于在数据更改时不会更改。如果您为此分享一些代码将会很有帮助。但是,基本上,您的 itemRenderer 应该监听 dataChange 事件,并且当数据更改时,您应该使用新数据更新组件的视觉显示。

2) 在 Flex 3 中,我发誓将一项从一个列表拖动到另一个列表会自动更新相关的 dataProvider。您确定需要编写手动代码来进行这些更改吗?不过,您将需要代码来更新相关的后端。

关于actionscript-3 - 避免 Flex 4 中 Spark 列表中的 ItemRender 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692010/

相关文章:

actionscript-3 - 将嵌套函数与事件监听器一起使用有什么问题吗?

css - 柔性 : cannot control size of scroll bar thumb when skinned

java - 数组组合的子集 - AS3

css - 如何检索应用于 flex UIComponent 的所有样式属性?

javascript - 如何与在 Flex 应用程序内运行的 iFrame 中托管的 html 文件进行通信?

c# - 将 Mate 的 RemoteObjectInvoker 与 C# 类一起使用

apache-flex - 弹性/AS3 : When to remove listeners?

android - flashvars 不适用于 Android 浏览器

apache-flex - 我们可以从多个 Flex 应用程序访问单个 SQLite 数据库吗?

apache-flex - Flex 4 日期选择器