canvas下添加widget无效吗?

现在情况是这样的,我的游戏是消除类游戏,主场景是一个方形区域(方形区域里面的绝大部分是显示区域,方形区域里面的最下部是各种按钮)。
我现在有一个需求,就是游戏的方形区域要紧贴屏幕的最上面,也就是无论是多么长的屏幕,都要方形区域作为一个整体紧贴屏幕的最上面,不留一点缝隙。至于方形区域下面就无所谓了,屏幕长的话,底下的空间就多空些,屏幕短的话,底下的空间就少些也无所谓。所以我按设计稿(1334x750分辨率 fit width)设计搞设计的时候,也是让方块区域都在canvas的最上面,没有留一点缝隙。
现在游戏快上线了,想做一下屏幕适配。既然有widget组件,我很自然就想到在canvas节点加上widget组件,然后让widget的top为0,这样就应该让canvas无论在什么屏幕上都是紧贴最上方了吧?
但我在iphone x这种长屏幕上,发现canvas是依旧是上下居中的,也就是说屏幕上下方都留下了很长的空白区域。
难道widget组件不能在canvas这个节点上用吗?
请多指教,谢谢!

canvas组件上默认就有个widget吧?而且canvas就是全屏的吧?

感谢回复。我现在解决问题了。就是不知道是不是属于野路子的方法。
原本,我的所有主要子节点都是放在了canvas下面(各主要子节点互为兄弟层级关系)。
现在,我在canvas下面加了个game节点,然后把以前canvas节点下面的那些节点都移到了game节点下面。也就是层级关系变为了canvas\game\各主要子节点 这么个形式。
然后canvas(fit width)下面添加widget组件,top和bottom都设为0。然后game节点也添加widget组件,top设为0,这样,无论什么样的长屏幕,game节点(也就是我的场景的方形区域)都紧贴屏幕最上方。这样做的原因是只要game节点用widget组件设置成紧贴屏幕上方后,它的各个子节点也就自然都往上了。省得每个子节点都要分别考虑往上的停靠问题。
现在就是有点害怕iphone x那种顶部挖洞的刘海屏,是不是可能那个洞会遮挡些game节点的方形区域。。。。

果然得按你这么来搞,这个引擎真是太蛋疼了 :joy:

我之前也碰到过类似问题。我是动态生成一个通知框,然后挂在当前Scene的Canvas下msgbox.parent=director.getScene().getChildByName(‘Canvas’),这个通知框在原生安卓上的尺寸就有问题,似乎是按了设计分辨率而不是实际屏幕尺寸来的。搞得我只好把通知框的AlignMode设成了always