我在移动项目中使用 IconItemRenderer。我在类中放置了一些日志记录,并注意到在创建视图时,每个项目都会调用 layoutContents 两次。
我还注意到,show 事件也会为视图触发两次。
这显然是低效的。我不认为这是我做过的任何事情(我小心不要修改诸如 creationComplete 和 viewActivate 之类的事件中的属性),但我可以防止重复工作吗?
我在移动项目中使用 IconItemRenderer。我在类中放置了一些日志记录,并注意到在创建视图时,每个项目都会调用 layoutContents 两次。
我还注意到,show 事件也会为视图触发两次。
这显然是低效的。我不认为这是我做过的任何事情(我小心不要修改诸如 creationComplete 和 viewActivate 之类的事件中的属性),但我可以防止重复工作吗?
将为 dataProvider 的每个可见元素创建一次 itemRenderer。因此,请确保您不会混淆不同的 dataProvider 实例。听起来你已经涵盖了这一点。
layoutContents() 方法是从移动 itemRenderers 的 updateDisplayList() 方法中调用的。updateDisplayList() 在组件的“生命周期”中可能会被多次调用。您必须逐步完成整个组件生命周期才能准确了解发生了什么。 更多信息在这里。
您必须弄清楚是什么使显示列表无效,从而迫使 updateDisplayList() 再次执行。
这是否会在应用程序中引入低效率是有待解释的。这取决于 updateDisplayList()/layoutContents() 方法中发生了什么。