确定性的返回行为

定义一套统一的返回策略,让关闭叠层与弹出页面始终按相同顺序发生。

叠层优先

先关闭当前叠层,再弹出页面堆栈。

感知根节点

当堆栈长度为 1 时,交给父级行为处理,而不是强制弹出。

感知标签页

在标签页模式下,根节点先切回第一个标签页,再触发应用级退出处理。

返回作用域模式

页面堆栈使用 DeclarativePagesBackScope,标签页根部使用标签回调。

返回策略

声明式页面返回作用域

return DeclarativePagesBackScope(
  pages: _pages,
  popTopPage: _popTop,
  isOverlayVisible: _overlay != null,
  dismissOverlay: _dismissOverlay,
  onBackAtRoot: _onBackAtRoot,
  child: DeclarativePagesNavigator(
    pages: _pages,
    buildPage: _buildPage,
    onPopTop: _popTop,
    canPopTop: () => _overlay == null,
  ),
);
体验稳定性

请保持 所有返回事件的一致顺序 ,以避免 Android 系统返回与 iOS 手势之间的混淆。