@Feu Я столкнулся с той же проблемой после ее реализации, как и выше ответ
у показать диалоговое окно оповещения на основе условия. Не основано на взаимодействии с пользователем, таком как событие нажатия кнопки.
Если флаг установлен в диалоговом окне предупреждения о состоянии приложения, в противном случае его нет.
Ниже приведен пример диалогового окна оповещения, которое я хочу показать
void _showDialog() {
// flutter defined function
showDialog(
context: context,
builder: (BuildContext context) {
// return object of type Dialog
return AlertDialog(
title: new Text("Alert Dialog title"),
content: new Text("Alert Dialog body"),
actions: <Widget>[
// usually buttons at the bottom of the dialog
new FlatButton(
child: new Text("Close"),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
Я пытался вызвать этот метод внутри метода сборки виджета на главном экране, но он выдает ошибку -
The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.
E/flutter ( 3667): #0 Navigator.of.<anonymous closure> (package:flutter/src/widgets/navigator.dart:1179:9)
E/flutter ( 3667): #1 Navigator.of (package:flutter/src/widgets/navigator.dart:1186:6)
E/flutter ( 3667): #2 showDialog (package:flutter/src/material/dialog.dart:642:20)
Проблема в том, что я не знаю, откуда мне вызывать этот метод _showDialog?