问题
在修改了 Layout 的布局的参数后,调用 LayoutRebuilder.ForceRebuildLayoutImmediate 刷新界面第一次不生效。
解决
在帧结束的时候,Toggle 一个组件的 active 属性,重新刷新布局。
private void OnEnable()
{
StartCoroutine(ForceRefreshLayout());
}
...
private IEnumerator ForceRefreshLayout()
{
yield return new WaitForEndOfFrame();
forceRefreshLayout.ForEach(item =>
{
item.gameObject.SetActive(false);
item.gameObject.SetActive(true);
LayoutRebuilder.ForceRebuildLayoutImmediate(item);
});
}