Unity Content Size Fitter 刷新不及时

问题描述

现在有一个需求,就是显示一个滑动列表

这个滑动列表里面的项目数量是不一定的,会适时刷新

在编辑器中,列表的使用是正常的。当打了包之后,就会出现列表无法滑动的情况。

这是由于ContentSizeFitter没有及时刷新的缘故。

列表结构

在滑动列表中,容器Content挂载了ContentSizeFitter和VerticalLayoutGroup,以便计算该容器内装载物体的高度。

在这个容器内,又装着两个标题及其对应的两个列表容器。这两个列表容器也同样挂载着ContentSizeFitter和VerticalLayoutGroup。

解决方案

打了log之后发现,列表初始化前后的高度没有改变,说明ContentSizeFitter没有刷新。

在初始化的代码后加上强制刷新的代码,随后列表就可以正常滑动了。

先刷新子列表的高度,随后再刷新父列表高度。

LayoutRebuilder.ForceRebuildLayoutImmediate(m_List_1.GetComponent<RectTransform>());
LayoutRebuilder.ForceRebuildLayoutImmediate(m_List_2.GetComponent<RectTransform>());
LayoutRebuilder.ForceRebuildLayoutImmediate(m_obj_Content.GetComponent<RectTransform>());

猜你喜欢

转载自blog.csdn.net/weixin_43673589/article/details/128339818