隐藏layout所有子节点的时候 layout本身的大小并没有发生变化LayoutTest.zip (818.9 KB)
1赞
试下updateLayout()
好像不行,就算可以 如果每次需要调用updateLayout() 会有点不太好吧
2.4.4也没有这个问题
主要是项目从2.4.4升级到2.4.8 陆续出现这样的情况
如果一开始这个layout就是这样的特性我们可能在做得时候就会加上额外代码
现在项目内容有点多了 全部地方去加代码不太那啥了
好像可以监听layout变动的事件做处理,但没写过。
看了一下CCLayout的源码发现updateLayout改过了,之前是无脑刷新,现在变成了子节点必须有显示的节点才刷新,所以当子节点全部都隐藏后不会触发更新逻辑
updateLayout: function () {
if (this._layoutDirty && this.node.children.length > 0) {
var activeChild = this.node.children.find((node) => node.activeInHierarchy);
if(activeChild) {
this._doLayout();
this._layoutDirty = false;
}
}
}
暂时使用临时处理方案重写Layout的updateLayout方法,把以下代码加入到游戏初始化的地方
cc.Layout.prototype[‘updateLayout’] = function () {
if (this._layoutDirty && this.node.children.length > 0) {
this._doLayout();
this._layoutDirty = false;
}
}
好的 感谢
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。

