Детерминистично поведение при връщане назад
Определете една единствена политика за връщане назад, така че затварянето на оверлеи и изваждането на елементи от стека винаги да стават в един и същ ред.
Първо оверлеите
Затваряйте активните оверлеи, преди да изваждате страници от стека.
Съобразено с корена
Когато стекът има само един елемент, делегирайте на поведението на родителя вместо да го изваждате насилствено.
Съобразено с табовете
В режим на табове първо преминете към първия таб в корена, преди да задействате обработката на изхода на приложението.
Патърн на обхвата за връщане назад
Използвайте DeclarativePagesBackScope за стекове от страници и обратни извиквания на табовете за техните корени.
Политика за връщане назад
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 стабилност
Запазете един и същ ред за всички събития за връщане назад за да избегнете объркване между системния back бутон на Android и жестовете в iOS.
Предишна
Декларативни табовеСледваща
Анти-патерни