Ответ 1
Navigator.pop()
должен сделать трюк. Вы также можете использовать это, чтобы вернуть результат диалога (если он представил пользователю выбор)
У меня есть следующий AlertDialog
.
showDialog(
context: context,
child: new AlertDialog(
title: const Text("Location disabled"),
content: const Text(
"""
Location is disabled on this device. Please enable it and try again.
"""),
actions: [
new FlatButton(
child: const Text("Ok"),
onPressed: _dismissDialog,
),
],
),
);
Как я могу сделать _dismissDialog()
отклонить сказал AlertDialog
?
Navigator.pop()
должен сделать трюк. Вы также можете использовать это, чтобы вернуть результат диалога (если он представил пользователю выбор)
Navigator.of(context, rootNavigator: true).pop('dialog')
работал со мной
Вы можете использовать любое из следующего:
Navigator.of(context).pop();
Navigator.pop(context);
Navigator.pop(_)
работал для меня, но галерея Flutter Team содержит пример, использующий:
Navigator.of(context, rootNavigator: true).pop()
что также работает, и я испытываю желание последовать их примеру.
Просто использовать
Navigator.pop(context);
В принятом ответе указывается, как закрыть диалоговое окно с помощью класса Navigator. Чтобы закрыть диалоговое окно без использования Навигатора, вы можете установить для события onPressed кнопки следующее:
setState((){
thisAlertDialog = null;
});
В случае, если приведенный выше код не говорит само за себя, он в основном устанавливает значение Parent AlertDialog для FlatButton в значение null, что исключает его.
Это работает префектно
RaisedButton(
child: Text(
"Cancel",
style: TextStyle(color: Colors.white),
),
color: Colors.blue,
onPressed: () => Navigator.pop(context),
),