Layout更新布局顺序不确定导致的bug

  • Creator 版本:2.2.2

我有一个需求是先用Layout A对子节点做水平方向的布局,Resize Mode为Container,然后在同一个节点下使用Layout B通过None的布局方式,Resize Mode也为Container,来修改这个节点高。

A挂在B的上面,执行顺序是没问题的。但是,B的布局更新在某些情况下却比A先执行。

看了一下源码才发现,原来Layout的更新是注册在了director的EVENT_AFTER_UPDATE事件,但是事件回调的管理使用了fastRemove,导致事件回调顺序是会改变的,所以在有些时候B比A先更新布局了。

这样的结果是:如果A先于B(理想),该节点的锚点不会发生变化。但B先于A,该节点的锚点则会发生改变。。。
建议能够固定Layout布局更新顺序,或者当布局方式为None时,提供选择是否修改锚点