mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
feat(ui): 添加UI层级管理和优化Peek方法
- 修改Peek方法返回类型为可空IUiPageBehavior?以避免空栈异常 - 在IUiRouter接口中添加完整的UI层级管理功能 - 新增Show方法支持在指定层级显示UI(Overlay/Modal/Toast等) - 新增Hide方法支持隐藏指定层级的UI - 新增ClearLayer方法支持清空指定层级的所有UI - 新增GetFromLayer方法支持从指定层级获取UI实例 - 新增HasVisibleInLayer方法支持判断指定层级是否存在可见UI - 完善UI路由系统的层级控制能力 - [release ci]
This commit is contained in:
parent
3ad4913f9e
commit
dadda8803f
@ -103,7 +103,7 @@ public interface IUiRouter : ISystem
|
||||
/// 获取当前栈顶的UI页面行为对象
|
||||
/// </summary>
|
||||
/// <returns>栈顶的IUiPageBehavior对象,如果栈为空则返回null</returns>
|
||||
IUiPageBehavior Peek();
|
||||
IUiPageBehavior? Peek();
|
||||
|
||||
|
||||
/// <summary>
|
||||
@ -137,4 +137,42 @@ public interface IUiRouter : ISystem
|
||||
void RemoveGuard(IUiRouteGuard guard);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Layer UI
|
||||
|
||||
/// <summary>
|
||||
/// 在指定层级显示UI(Overlay / Modal / Toast等)
|
||||
/// </summary>
|
||||
void Show(
|
||||
string uiKey,
|
||||
UiLayer layer,
|
||||
IUiPageEnterParam? param = null,
|
||||
UiInstancePolicy instancePolicy = UiInstancePolicy.Reuse);
|
||||
|
||||
/// <summary>
|
||||
/// 在指定层级显示UI(基于已存在实例)
|
||||
/// </summary>
|
||||
void Show(IUiPageBehavior page, UiLayer layer);
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏指定层级的UI
|
||||
/// </summary>
|
||||
void Hide(string uiKey, UiLayer layer, bool destroy = false);
|
||||
|
||||
/// <summary>
|
||||
/// 清空指定层级的所有UI
|
||||
/// </summary>
|
||||
void ClearLayer(UiLayer layer, bool destroy = false);
|
||||
|
||||
/// <summary>
|
||||
/// 从指定层级获取UI实例
|
||||
/// </summary>
|
||||
IUiPageBehavior? GetFromLayer(string uiKey, UiLayer layer);
|
||||
|
||||
/// <summary>
|
||||
/// 判断指定层级是否存在可见UI
|
||||
/// </summary>
|
||||
bool HasVisibleInLayer(UiLayer layer);
|
||||
|
||||
#endregion
|
||||
}
|
||||
@ -267,9 +267,9 @@ public abstract class UiRouterBase : AbstractSystem, IUiRouter
|
||||
/// 获取页面栈顶元素,但不移除该元素
|
||||
/// </summary>
|
||||
/// <returns>返回栈顶的IUiPageBehavior元素</returns>
|
||||
public IUiPageBehavior Peek()
|
||||
public IUiPageBehavior? Peek()
|
||||
{
|
||||
return _stack.Peek();
|
||||
return _stack.Count == 0 ? null : _stack.Peek();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user