【问题标题】: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() 方法中发生了什么。

    【讨论】:

      最近更新 更多