Я получил его, правильно используя Navigator.maybePop()
с WillPopScope()
.
Согласно Flutter maybePop()
, он используется вместо pop()
для обработки нажатия пользователем кнопку возврата устройства.
, изменив его поведение во вложенном навигаторе, нажатие кнопки возврата не приведет к открытию навигатора root, а вызовет только вложенный навигатор.
например:
class SecondNavigator extends StatefulWidget {
SecondNavigator({Key key}) : super(key: key);
@override
_SecondNavigatorState createState() => _SecondNavigatorState();
}
class _SecondNavigatorState extends State<SecondNavigator> {
final GlobalKey<NavigatorState> navigatorKey = new GlobalKey();
@override
Widget build(BuildContext context) {
return WillPopScope(
child: Navigator(
key: navigatorKey,
...
),
onWillPop: () async {
final NavigatorState navigator = navigatorKey.currentState;
return !await navigator.maybePop();
},
);
}
}
Полный пример был предоставлен здесь
обязательно ознакомьтесь с документацией flutter willpop()
, чтобы лучше понять maypop()