嵌套自适应如何正确处理

最近开发的时候,经常遇到需要嵌套自适应的需求。最底层可能是奖励项的动态生成,而背景需要包裹住奖励项进行自适应。而上级的UI可能又要根据这个背景进行自适应高度。层层嵌套。每次解决我都是需要定个计时器,从内往外用Layout的Update接口去强行自适应。但有时候还是会感觉不方便,一是渲染项的时间不固定。有时候会还没渲染完就自适应,导致自适应有问题。二是多层Layout自适应,界面打开总会闪一下。而Layout没记错的话,又只能在节点开启的时候执行。所以只能自己写个自适应的脚本了吗,有没有大佬讲解一下?

写个计算布局位置的函数吧,很多需求单纯靠组件是不够的。

闪一下确实恶心, 你强制更新吧又变手动了, 不用和用都不舒服

建议是Layout和widget和scrollView结合使用;
使用Layout时灵活设置resize mode和type;
widget可以多改变align mode尝试下;
scrollView一般要和Layout、widget结合使用,常见的用widget逐层自适应宽度,在content节点用Layout的container自适应高度。
如果是移动端还可以在顶层加入safeArea;
这应该能解决99%的自适应问题吧。(除了那种触摸点显示弹窗)
如果自适应的屏幕比例跨度比较大,比如手机和平板都适应,这时一般才需要写代码去判断屏幕比例适配。

这个问题对于专业前端来说很基础 :joy:

fgui天然就能解决这个问题

我现在就是这几个结合,通过各自的强行执行方法进行自适应。但是会闪一下的这个问题,想请教一下怎么解决。

是的,自适应弄好了。每次切界面就会闪一下,总感觉有更好的解决办法。所以来论坛问问技术大佬们

想不闪的话,就需要在同一帧处理宽高的变化

让它们自己自适应,而不是强行执行方法,你用定时器手动写代码去执行,相当于自适应了2次,肯定会闪。如果自适应2次就能解决,而不需要代码改宽高,那说明节点层级或组件使用有问题

如果老是写不好又赶时间的话,干脆来个简单的,手动计算宽高并设置,不用组件的自适应。说不定过段时间就豁然开朗了

同一帧好像没法处理,我在同一帧生成动态奖励项,更改文本宽度。让背景最后进行自适应会有问题。只能加个定时器,在下一帧进行自适应。

是这样的,准备自己手撸个了。用系统自带的效果不理想,也可能是我不太会用 :weary:

破案了,闪动是因为用了一个动态列表脚本。启用了动态列表后,它会默认把滑动条组件的layout给关了。我还一直寻思着我从内往外自适应会有闪动问题 :skull:

1赞