[hooks][fix]: 修正提交检查并同步 UI 文档

This commit is contained in:
2026-07-21 13:16:45 +08:00
parent 571e299642
commit 4940688687
14 changed files with 35 additions and 33 deletions

View File

@@ -6,7 +6,7 @@
```csharp
[HFAssetBundlePath("UIWindows/ExampleWindow/ExampleWindow.prefab")]
[HFUIWindowLayer(enHFUICanvasLayer.Dynamic)]
[HFUIWindowLayer(enHFUICanvasLayer.UIWindow, enHFUIWindowLayer.Dynamic, isUnloadOnClose = true)]
public partial class ExampleWindow : AbsHFUIWindow
{
protected override void OnRunAwake()
@@ -15,16 +15,16 @@ public partial class ExampleWindow : AbsHFUIWindow
// 查找控件、绑定按钮、初始化列表。
}
protected override void OnOpen(object[] _args)
protected override void OnOpen(Action _onOpenComplete)
{
base.OnOpen(_args);
// 注册事件并刷新本次显示数据。
base.OnOpen(_onOpenComplete);
}
protected override void OnClose()
protected override void OnClose(Action _onCloseComplete)
{
// 移除事件和计时器。
base.OnClose();
base.OnClose(_onCloseComplete);
}
}
```
@@ -37,11 +37,14 @@ HFFunCatalogue.UIManager.OpenWindow<ExampleWindow>();
不要直接实例化窗口 Prefab,也不要直接调用内部 `HFUIWindowMgr` 单例。
`isUnloadOnClose` 默认是 `false`。设为 `true` 后,通过 UI 管理器或窗口自身调用 `CloseWindow` 时,会在 `OnClose` 完成后自动销毁缓存实例并卸载窗口资源,适用于低频且内存占用较大的窗口。频繁开关的窗口应保留默认缓存行为,避免反复加载 Prefab 和 AssetBundle。
## 二、生命周期规则
- `OnRunAwake`:实例首次绑定时执行一次,适合控件查找、按钮绑定和虚拟列表初始化。
- `OnOpen`:每次打开执行,适合注册事件、应用参数和刷新数据数量。
- `OnClose`:每次关闭执行,与 `OnOpen` 中的监听、计时器和临时状态对称清理。
- 重写 `OnOpen(Action)` 或 `OnClose(Action)` 时必须保证完成回调最终且仅调用一次;自动卸载窗口会在 `OnClose` 完成回调后执行。
- 列表初始化不能依赖数据已经到达;先以数量 `0` 初始化,数据准备后再刷新数量。
## 三、单列虚拟列表