Детерминированное поведение возврата
Задайте единую политику возврата, чтобы закрытие оверлеев и pop-операции стека всегда происходили в одном и том же порядке.
Сначала оверлеи
Закрывайте активные оверлеи перед pop-операциями стека страниц.
С учётом корня
Когда длина стека равна одному, делегируйте поведение родителю вместо принудительного pop.
С учётом вкладок
В режиме вкладок перейдите на первую вкладку в корне, прежде чем запускать обработку выхода на уровне приложения.
Паттерн обработки возврата
Используйте DeclarativePagesBackScope для стеков страниц и callback-функции вкладок для корней вкладок.
Политика возврата
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-стабильность
Сохраняйте один последовательный порядок для всех событий возврата чтобы избежать путаницы пользователей между системной кнопкой Android «Назад» и жестами iOS.
Предыдущая
Декларативные вкладкиСледующая
Антипаттерны