为什么Flex移动组件会将其内容布局两次?

时间:2012-05-19 14:17:27

标签: flex air adobe flex4.5 flex-spark

我在移动项目中使用IconItemRenderer。我在课堂上放了一些日志,并注意到在创建视图时,每个项目都调用了layoutContents两次。

我也注意到show事件也会为视图触发两次。

这显然效率低下。我不认为这是我做过的任何事情(我小心不要修改像creationComplete和viewActivate这样的事件中的属性),但我可以防止重复工作吗?

1 个答案:

答案 0 :(得分:2)

将为dataProvider的每个可见元素创建一次itemRenderer。因此,请确保您不会混淆不同的dataProvider实例。听起来你已经涵盖了这一点。

从移动itemRenderer的updateDisplayList()方法调用layoutContents()方法。 updateDisplayList()可能在组件的“生命周期”期间被大量调用。您必须逐步完成整个组件生命周期才能确切了解正在发生的事情。 More information here

您必须弄清楚显示列表无效的内容,强制updateDisplayList()再次执行。

这是否会给应用程序带来不足之处,可以解释。它取决于updateDisplayList()/ layoutContents()方法中发生的事情。