Unity中[VerticalLayoutGroup]及[HorizontalLayoutGroup]动态刷新显示不正常

项目中有些时候需要用到HorizontalLayoutGroup或者VerticalLayoutGroup来动态设置一些文本等其他组件保证适中或者其他需求


图一 


图二

有时候就需要动态设置一些文本,使用 ContentSizeFitter 组件保证文本大小动态设置,如图一图二,会用到上诉组件 保证在窗口中心, 但是如果动态设置可能出现图三的情况

图三

原因是因为ContentSizeFitter这个组件计算文本RectTransform会晚一帧执行,这个也能理解,虽然ContentSizeFitter有回调,但是使用起来不是很方便,包括以前使用 组件的延迟调用enble 来使他回归正常,但是使用这个发现有点麻瓜,于是找到了此方法

设置完成的时候 手动调用下 Group组件

LayoutRebuilder.ForceRebuildLayoutImmediate(Group);

这样 就会回归正常状态


ForceRebuildLayoutImmediate方法源码如下:

ForceRebuildLayoutImmediate源码
StripDisabledBehavioursFromList
PerformLayoutControl
PerformLayoutCalculation

自己测试

试过这样调用,发现没什么卵用,老老实实的用上面的吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容