Canvas不自动适配,要刷新一次才有效

游戏是竖屏,按照宽度适配正常。
image

再Ipad得模式下,改成高度适配,这时候,创建出来的界面不会自动适配
image

image
切换成iphonx再切换回来ipad后,后面的绿色背景自己就适配了。

如果一开始改成高度适配,就会出现相反的情况,iPhonex适配有问题,ipad适配正常.

【第一次修改】
发现,手动调用一次widget.updateAlignment 可以解决问题

你需要看下你的 Widget 组件的 type ,如果是 once 那么是不会响应屏幕发出了适配事件而进行重新适配 UI。换成 ON_WINDOW_RESIZE 或者 Always 即可。

谢谢大佬回复,默认都是 ON_WINDOW_RESIZE,确实不行,Always也无效

那就是设备底层没有发出 resize 事件了。这种情况就只能游戏自己再手动适配一次。

你这边的引擎版本是多少?

2.4.4

嗯,我再调用一次updateAlignment 就解决了。我再运行时,启动的时候,根据屏幕大小,会修改设计分辨率的适配策略,是根据高度还是宽度,不知道有没有关系

如果是自己修改了设计分辨率之后,那么确实需要自己在手动适配一次 UI。

如果你调用了 cc.view.setDesignResolutionSize 修改设计分辨率,这时候 view 会向全局抛出一个 design-resolution-changed 事件。而引擎中的 widget 并不会监听 design-resolution-changed 事件,所以 widget 组件不会自动重新适配。你可以自己添加监听: cc.view.on(" design-resolution-changed", function)

多谢大佬。

修改设计分辨率真的有用吗?我的怎么不生效
设计分辨率7201280
同样2块屏幕,1590
720
一块全面屏,一块挖孔屏,怎么让全面屏手机是铺满屏幕的,挖孔屏是顶部在挖孔的下面?

用好widget组件

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。