Как показать диалог подтверждения перед выходом из экрана во Flutter
Я хочу показать диалоговое окно с предупреждением, прежде чем утилизировать или покинуть экран, или, в конце концов, показать предупреждение SnackBar, как я могу это сделать?
Я знаю, как показать диалог и SnackBar, но я не знаю, где я это делаю и когда я пытался это сделать, чтобы избавиться от жизненного крючка, но это дает ошибку. из-за контекста удаляется перед отображением диалогового окна.
1 ответ
Решение
Вы можете использовать WillPopScope
виджет:
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
final value = await showDialog<bool>(
context: context,
builder: (context) {
return AlertDialog(
content: Text('Are you sure you want to exit?'),
actions: <Widget>[
FlatButton(
child: Text('No'),
onPressed: () {
Navigator.of(context).pop(false);
},
),
FlatButton(
child: Text('Yes, exit'),
onPressed: () {
Navigator.of(context).pop(true);
},
),
],
);
}
);
return value == true;
},
child: Scaffold(
appBar: AppBar(),
body: SafeArea(
child: Container()
),
),
);
}