[hooks][fix]: 修正提交检查并同步 UI 文档
This commit is contained in:
@@ -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` 初始化,数据准备后再刷新数量。
|
||||
|
||||
## 三、单列虚拟列表
|
||||
|
||||
Reference in New Issue
Block a user