Вы можете обернуть свой эшафот с помощью WillPopScope
return WillPopScope(
onWillPop: () => _exitApp(context),
child: Scaffold(
appBar: AppBar(
title: Text("Navigation Demo"),
backgroundColor: Colors.deepOrangeAccent,
),
и спросить пользователя. Вы хотите выйти из этого приложения или текущей страницы?
Future<bool> _exitApp(BuildContext context) {
return showDialog(
context: context,
child: new AlertDialog(
title: new Text('Do you want to exit this application?'),
content: new Text('We hate to see you leave...'),
actions: <Widget>[
new FlatButton(
onPressed: () => Navigator.of(context).pop(false),
child: new Text('No'),
),
new FlatButton(
onPressed: () => Navigator.of(context).pop(true),
child: new Text('Yes'),
),
],
),
) ??
false;
}
подробный справочник https://codingwithjoe.com/flutter-navigation-how-to-prevent-navigation/