1

我有一个使用由 itemRendererFunction 确定的多个项目渲染器的列表组件。当我第一次设置数据时,它按预期工作。然后,当我使用新数据第二次设置数据时,它不会调用 itemRendererFunction 并尝试重用当前渲染器,即使它们与数据不匹配。滚动后,将调用该函数并使用正确的渲染器。在设置数据之前,我尝试调用 invalidateDisplayList 等,但这并没有解决问题。有任何想法吗?

4

3 回答 3

4

事实证明这是一个 Flex SDK 错误。Peter DeHaan 为我提供了一种解决方法(在设置 dataProvider 后重新设置 itemRendererFunction 属性)并将其归档以供 SDK 的未来版本使用。

于 2010-02-09T20:26:22.900 回答
0

这里只是一些想法:

尝试无效属性?查看源代码,我有一种预感,否则,也许只是开始调用您可以找到的每个无效方法,直到找到正确的方法。

另一种 hacky 解决方案可能是不将当前滚动位置(通过 List 上的滚动条)传入一个新数组作为 dataprovider (这肯定会重新创建项目渲染器),然后将滚动位置设置为与之前相同刷新。

或者您可以将不同项目渲染器的选择抽象到项目渲染器本身。:/

于 2010-02-09T19:42:55.670 回答
0

FWIW:这是 Flex 错误的链接: https ://bugs.adobe.com/jira/browse/SDK-32018

于 2012-02-06T23:16:24.967 回答