setLocalZOrder在layout里不起作用。

我在layout里设置里方向,然后把一个个节点添加进去,但是我要让添加进去的节点的显示顺序与添加顺序不同,就用了setLocalZOrder来设置,可是不管怎么设置都不起作用,已经做了demo,请帮忙看看是不是bug。
testbug.rar (800.6 KB)

1赞

直接用.zIndex = 呢

一样的不起作用

http://forum.cocos.com/t/layout/39851

我是要改变渲染顺序,而且这个是个bug,不是用法错误,在一个Layout里,你要改变渲染顺序这是一个很正常的需求,不是要通过改变节点索引。

目前的 layout 的排版跟节点的索引绑定在一起了,建议如果你需要修改渲染顺序,自己写一个 layout 吧。。。

第一,我不会写layout这样的组件。
第二,排版跟渲染顺序应该不冲突吧,难道说放到layout里面就不允许改变zorder了吗?这样好像不符合逻辑,你说的目前意思是以后会修正呢,还是说以后就是这样。如果说以后就是这样,那至少要在文档里做个说明,最好是在node加到layout里面时会提示无法改变zorder。

实现这样的需求,你只能自己添加node,自己计算坐标,然后指定zIndex了。
没法,我之前也是遇到了这个问题,救助社区没有解决,只能这样先实现需求了,就看到后面各位Cocos的大神们能不能实现。
这是我之前发的帖子。
http://forum.cocos.com/t/layout/39067/16

因为要考虑到兼容性,所以不太敢随意做出破坏兼容性的修改。你先按照 @xiajinchun 兄的方案试一下吧。

我看了下那个贴子,上面说到以后会增加一个接口实现这样的需求,所以想请问下,大概哪个版本,什么时候会增加接口?

自己把layout里面的元素管理起来,如果要改变layout元素里面的顺序,就在外面排序好,再清除layout里面的元素重新添加进去。只有这样了。