【问题标题】:Why do Flex mobile components layout their contents twice?为什么 Flex 移动组件会对其内容进行两次布局?
【发布时间】:2023-12-28 19:42:01
【问题描述】:
我在移动项目中使用 IconItemRenderer。我在类中放置了一些日志记录,并注意到在创建视图时,每个项目都会调用 layoutContents 两次。
我还注意到,show 事件也会为视图触发两次。
这显然是低效的。我不认为这是我做过的任何事情(我小心不要修改诸如 creationComplete 和 viewActivate 之类的事件中的属性),但我可以防止重复工作吗?
【问题讨论】:
标签:
apache-flex
air
adobe
flex4.5
flex-spark
【解决方案1】:
将为 dataProvider 的每个可见元素创建一次 itemRenderer。因此,请确保您不会混淆不同的 dataProvider 实例。听起来您已经涵盖了这一点。
layoutContents() 方法是从移动 itemRenderers 的 updateDisplayList() 方法中调用的。 updateDisplayList() 在组件的“生命周期”中可能会被多次调用。您必须逐步完成整个组件生命周期才能准确了解发生了什么。 More information here。
您必须弄清楚是什么导致显示列表无效,从而迫使 updateDisplayList() 再次执行。
这是否会导致应用程序效率低下尚待解释。这取决于 updateDisplayList()/layoutContents() 方法中发生了什么。