Deterministisches Zurück-Verhalten

Definieren Sie eine einzige Rückwärts-Richtlinie, damit das Schließen von Overlays und das Poppen von Stacks immer in derselben Reihenfolge geschieht.

Overlay zuerst

Aktive Overlays schließen, bevor Seitenstacks gepoppt werden.

Root-bewusst

Wenn die Stack-Länge eins ist, das Verhalten an den Parent delegieren statt erzwungen zu poppen.

Tab-bewusst

Im Tab-Modus zuerst zum ersten Tab auf Root wechseln, bevor das appweite Beenden ausgelöst wird.

Back-Scope-Muster

Verwenden Sie DeclarativePagesBackScope für Seitenstacks und Tab-Callbacks für Tab-Roots.

Zurück-Richtlinie

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,
  ),
);
UX-Stabilität

Behalten Sie eine einheitliche Reihenfolge für alle Zurück-Ereignisse bei, um Verwirrung zwischen der Android-System-zurück-Taste und iOS-Gesten zu vermeiden.