如何实现cocos creator中layout组件中的居中对齐功能?

E2541376-44A4-4111-8672-E8C43E17CAF8

想要实现下方字母部分,三个小块都居中,不论一行还是多行,不论这些小块是一个还是多个,这些小字块都可以居中显示,目前cocos creater的layout组件没有居中对齐的选项,求救各位大佬

1赞

layout可以根据子元素的个数自动变化宽度,再配合Widget的居中,来实现你要的效果,或者自己吧两者中和一下写个自定义组件——那就是个单纯的数学问题了。

2赞

content加个widget组件,居中对齐

1赞

单行的话,不使用widget,使用layout的Horizontal是可以使内容居中的。但如果内容是多行的,就无能为力了。

我现在能想到的方案是,采用layout的Horizontal的方式,如果外层超过了某个宽度,再重新添加一行。

现在想录求不需要再新增一行的方式

1赞

layout随子节点长度改变大小不就行了

1赞

写了个类继承自Layout,重写了水平设置位置的方法,需要的自取,Cocos版本是2.4.6
image


CenterLayout.zip (4.3 KB)

4赞

好用 赞赞赞赞赞

1赞

改不动啊3.x

1赞

编辑器有对齐功能,对齐就行了

1赞

适配了3.x,源码基于3.8.1,替换CenterLayout.ts即可
CenterLayout.zip (2.0 KB)

6赞

大佬太厉害了

1赞

大佬。GRID模式 container设置了无效 3.8.0版本 导致height一直不变,超出后无法滑动

1赞

我是基于3.8.1的源码改的,你试试3.8.1版本可以吗,还不行的话方便发个demo过来

1赞

大佬真的好用

1赞

动态加载的子项怕是无法使用这个吧, 这个是不是只能在编辑器环境下对齐。

1赞

百问不如一试

1赞

肯定是试过才问的,因为不熟悉这个功能所以不是很确定

1赞

当然是可以的,初衷就是类似组队pk那种头像的排序

1赞

嗯 再次感谢大佬,你的脚本最新版本是可以用的。 我问的是当时那个人说的编辑器对齐功能 :joy:

1赞

你的帖子已经被社区标记并被临时隐藏。