建议layout加一个居中排列

如题 xxx

不清楚你啥意思,居中用 widget 就可以了啊?

能否举几个居中排列的栗子?

下面所有控件居中对齐,
比如我有一个母控件layout,宽度是1000,下面3个子控件,宽度是200,如果是横向从左到右就是,x分别是0,200,400,
如果居中对齐,x分别是200,400,600,这个意思

这个你加一下 padding 和 spacingX 不就好了吗?

padding 和spaceingX要自己算啊,就不是居中了啊,所以我现在就直接用node,自己直接算了。

这样用layout没意义啊,直接用node
node和layout的区别就在于
本来要
for(var i in cs){
node.addChild(cs[i])
cs[i].x = (i-1) * cs.widht
}
而layout只是改成了
for(var i in cs){
node.addChild(cs[i])
cs[i].x = (i-1) * cs.widht
}

现在如果居中还要自己算pading和spaceingX
for(var i in cs){
node.addChild(cs[i])
}
node.pading.left =
node.pading.spaceX =
那我直接用node 就好了,每次都这样,麻烦说建议加个居中。
你看一半对齐是不是都有左对齐,右对齐,居中。不会说左对齐,右对齐,居中你就用左对齐,然后,算一下偏移多少,自己偏移一下

这个貌似还是挺多用的,建议引擎组考虑下吧

恩,我先建个 issue。后面再排计划。

这种功能也要引擎加吗?不就 Layout 上面多一个父节点(用来画背景)的事

1赞

没错,只要先用左排列,再把layout本身居中就可以了,居中的这个功能没必要加。

Resize Mode 设为 Container,然后 Layout 的 Anchor X 设为 0.5,不就是居中了

6赞

按这个说法,其实layout可以去掉了。
我一句话就可以实现layout了
for(){
root.addChild(node)
node.setPositionX(xxxx)
}

你有需要有精力的话,确实可以去掉啊,creator 只是给你一个范例,实际项目自己做很正常。

1赞

Layout 这个组件确实鸡肋,既然做组件就做完善一点嘛,没有居中布局,难道让开发者重新造轮子吗,那还用它干嘛,直接重写一个算了

Resize Mode 设为 Container,然后 Layout 的 Anchor X 设为 0.5,不就是居中了

1赞

有bug 子组件来回切换active的值 子组件没有重新居中对齐 编辑器上是可以的 代码上不行

建议新开一个帖子,另外麻烦附上一个重现问题的 demo,我看看是引擎 bug 还是你的用法问题。

你的这个问题是widget里面有个alignonce,应该不是bug

其实他们说的是像unity那样的layout…可以选左对齐,右对齐啥的。

希望有用