Comportamento de voltar determinístico

Defina uma única política de voltar para que o fechamento de overlays e os pops da pilha sempre aconteçam na mesma ordem.

Sobreposições primeiro

Feche os overlays ativos antes de fazer pop das pilhas de páginas.

Consciente da raiz

Quando o tamanho da pilha for um, delegue ao comportamento pai em vez de forçar o pop.

Consciente das abas

No modo de abas, vá para a primeira aba na raiz antes de acionar o tratamento de saída no nível do app.

Padrão de escopo de voltar

Use DeclarativePagesBackScope para pilhas de páginas e callbacks de abas para raízes de abas.

Política de voltar

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

Mantenha uma ordem consistente para todos os eventos de voltar para evitar confusão do usuário entre o voltar do sistema Android e os gestos do iOS.