mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
feat(ui): 添加基于实例的UI显示方法
- 在UiRouterBase中新增Show方法,支持通过IUiPageBehavior实例显示UI - 为IUiRouter接口添加对应的Show方法重载签名 - 添加详细的XML文档注释说明参数用途 - 临时禁用publish-docs工作流以解决文档生成问题 - [release ci]
This commit is contained in:
parent
c27c02a027
commit
efd7ababd2
15
.github/workflows/publish-docs.yml
vendored
15
.github/workflows/publish-docs.yml
vendored
@ -1,5 +1,6 @@
|
||||
# 工作流名称:Publish Docs
|
||||
# 该工作流用于在推送到 main 分支时自动构建并发布文档到 GitHub Pages。
|
||||
# 暂时关了,目前这个文档生成有问题,以后再改
|
||||
|
||||
name: Publish Docs
|
||||
|
||||
@ -7,13 +8,13 @@ name: Publish Docs
|
||||
# 定义工作流的触发规则。当代码仓库发生特定事件时,将自动执行相关操作。
|
||||
# 此处配置表示:当向仓库推送(push)带有标签(tag)的提交时触发工作流。
|
||||
# 标签匹配规则为通配符 '*',即任意标签都会触发。
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '**'
|
||||
tags:
|
||||
- '*'
|
||||
workflow_dispatch:
|
||||
#on:
|
||||
# push:
|
||||
# branches:
|
||||
# - '**'
|
||||
# tags:
|
||||
# - '*'
|
||||
# workflow_dispatch:
|
||||
|
||||
# 权限配置:指定工作流所需的权限。
|
||||
# actions: read - 允许读取 GitHub Actions 相关信息。
|
||||
|
||||
@ -143,12 +143,29 @@ public interface IUiRouter : ISystem
|
||||
/// <summary>
|
||||
/// 在指定层级显示UI(Overlay / Modal / Toast等)
|
||||
/// </summary>
|
||||
/// <param name="uiKey">要显示的UI页面的唯一标识符</param>
|
||||
/// <param name="layer">UI显示的层级,例如 Overlay、Modal 或 Toast</param>
|
||||
/// <param name="param">可选参数,用于传递给UI页面的初始化数据</param>
|
||||
/// <param name="instancePolicy">UI实例策略,默认为复用已存在的实例</param>
|
||||
void Show(
|
||||
string uiKey,
|
||||
UiLayer layer,
|
||||
IUiPageEnterParam? param = null,
|
||||
UiInstancePolicy instancePolicy = UiInstancePolicy.Reuse);
|
||||
|
||||
/// <summary>
|
||||
/// 在指定层级显示UI(Overlay / Modal / Toast等)
|
||||
/// </summary>
|
||||
/// <param name="page">要显示的UI页面行为对象</param>
|
||||
/// <param name="layer">UI显示的层级,例如 Overlay、Modal 或 Toast</param>
|
||||
/// <param name="param">传递给UI页面的初始化数据</param>
|
||||
/// <param name="enter">是否立即进入UI页面,默认为 false</param>
|
||||
void Show(
|
||||
IUiPageBehavior page,
|
||||
UiLayer layer,
|
||||
IUiPageEnterParam? param,
|
||||
bool enter = false);
|
||||
|
||||
/// <summary>
|
||||
/// 在指定层级显示UI(基于已存在实例)
|
||||
/// </summary>
|
||||
|
||||
@ -534,6 +534,34 @@ public abstract class UiRouterBase : AbstractSystem, IUiRouter
|
||||
Log.Debug("Show existing UI instance in layer: {0}, layer={1}", uiKey, layer);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 在指定层级显示UI(基于实例)
|
||||
/// </summary>
|
||||
public void Show(
|
||||
IUiPageBehavior page,
|
||||
UiLayer layer,
|
||||
IUiPageEnterParam? param,
|
||||
bool enter = false)
|
||||
{
|
||||
if (layer == UiLayer.Page)
|
||||
throw new ArgumentException("Use Push() for Page layer");
|
||||
|
||||
var uiKey = page.Key;
|
||||
|
||||
if (!_layers.ContainsKey(layer))
|
||||
_layers[layer] = new Dictionary<string, IUiPageBehavior>();
|
||||
|
||||
_layers[layer][uiKey] = page;
|
||||
_uiRoot.AddUiPage(page, layer);
|
||||
|
||||
if (enter)
|
||||
page.OnEnter(param);
|
||||
|
||||
page.OnShow();
|
||||
|
||||
Log.Debug("Show existing UI instance in layer: {0}, layer={1}", uiKey, layer);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏指定层级的UI
|
||||
/// </summary>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user