Comportamiento de regreso determinista

Defina una única política de regreso para que el cierre de superposiciones y los pops de la pila siempre ocurran en el mismo orden.

Primero la superposición

Cierre las superposiciones activas antes de hacer pop de las pilas de páginas.

Consciente de la raíz

Cuando la longitud de la pila sea uno, delegue en el comportamiento del padre en lugar de forzar el pop.

Consciente de pestañas

En modo de pestañas, vaya a la primera pestaña de la raíz antes de activar la gestión de salida de la app.

Patrón de ámbito de retorno

Use DeclarativePagesBackScope para las pilas de páginas y los callbacks de pestañas para las raíces de pestañas.

Política de retorno

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,
  ),
);
Estabilidad de UX

Conserve un orden coherente para todos los eventos de regreso para evitar confusiones entre el botón atrás del sistema Android y los gestos de iOS.