Как я могу отклонить AlertDialog на щелчке FlatButton?

У меня есть следующий 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?

Ответ 1

Navigator.pop() должен сделать трюк. Вы также можете использовать это, чтобы вернуть результат диалога (если он представил пользователю выбор)

Ответ 2

Navigator.of(context, rootNavigator: true).pop('dialog')

работал со мной

Ответ 3

Вы можете использовать любое из следующего:

Navigator.of(context).pop();
Navigator.pop(context);

Ответ 4

Navigator.pop(_)

работал для меня, но галерея Flutter Team содержит пример, использующий:

Navigator.of(context, rootNavigator: true).pop()

что также работает, и я испытываю желание последовать их примеру.

Ответ 5

Просто использовать

Navigator.pop(context);

Ответ 6

В принятом ответе указывается, как закрыть диалоговое окно с помощью класса Navigator. Чтобы закрыть диалоговое окно без использования Навигатора, вы можете установить для события onPressed кнопки следующее:

setState((){
  thisAlertDialog = null; 
});

В случае, если приведенный выше код не говорит само за себя, он в основном устанавливает значение Parent AlertDialog для FlatButton в значение null, что исключает его.

Ответ 7

Это работает префектно

      RaisedButton(
                child: Text(
                  "Cancel",
                  style: TextStyle(color: Colors.white),
                ),
                color: Colors.blue,
                onPressed: () => Navigator.pop(context),
              ),