0

这个问题我快疯了。基本上,我有一个带有自定义项目渲染器的 TileList,其中有一个 TextInput。假设列表可以同时显示 4 个项目,如果有 5 个项目并且我在第一个项目上编辑文本,那么第五个项目也会被编辑。一般来说,如果一个项目不在视野范围内,当我编辑一个正在显示的项目时,它会发生变化。

此外,我重写了 TileList 类以公开 rendererArray 属性(以便我可以访问每个渲染器上的文本),但它只会返回显示的渲染器。

任何帮助表示赞赏。我需要知道如何用当前未显示的 itemrenderer 覆盖这种奇怪的行为。谢谢。

4

1 回答 1

1

好的,如果有人遇到类似的问题,您需要执行以下操作:

首先,避免像我一样尝试遍历 itemrenderers。如果您需要 TileList 上的 TextInput 或其他控件,请确保这些控件绑定到数据对象上的属性,否则屏幕外项目将具有不正确的值,因为它们的 itemrenderer 将从离开屏幕的项目中回收你滚动。

如果您仔细考虑,任何需求都可以通过迭代 dataprovider 而不是 itemrenderers 来解决。

此外,如果您尝试像我一样公开 rendererArray 属性,请注意您将只能遍历当前显示的 itemrenderer,因为尚未创建那些属于屏幕外项目的项目。

我希望这不会太混乱..

于 2011-07-06T15:50:39.780 回答