Main/Utility/UIHelper.cs
@@ -8,6 +8,7 @@
using System.Text.RegularExpressions;
using System.IO;
using LitJson;
using Cysharp.Threading.Tasks;
/// <summary>
/// UI辅助类
@@ -1430,4 +1431,26 @@
        return GUIUtility.systemCopyBuffer;
    }
    
    /// <summary>
    /// 强制刷新Layout,解决嵌套Layout和ContentSizeFitter的重叠问题
    /// </summary>
    public static async UniTask ForceRefreshLayout(Transform transform)
    {
        await UniTask.DelayFrame(2);
        // 刷新所有Layout组件
        var layouts = transform.GetComponentsInChildren<LayoutGroup>(true);
        foreach (var layout in layouts)
        {
            LayoutRebuilder.ForceRebuildLayoutImmediate(layout.GetComponent<RectTransform>());
        }
        await UniTask.DelayFrame(2);
        // 刷新所有Layout组件
        foreach (var layout in layouts)
        {
            LayoutRebuilder.ForceRebuildLayoutImmediate(layout.GetComponent<RectTransform>());
        }
    }
}