Я пытаюсь создать процесс, в результате которого мое приложение будет отображать диалоговое окно showDialog в течение определенного периода времени, а затем ТОЛЬКО после получения информации из онлайн-ресурса отменять его из диалогового окна show.
Я сделал это с помощью изменения всего нового виджета scaffold без каких-либо проблем, и navigator.pop (); просто без проблем возвращает меня в предыдущий контекст.
Однако с помощью виджета showDialog my Navigator.of (context) .pop (); только когда-либо касается базового экрана.
Я знаю, как закрыть диалоговое окно показа, если у меня есть кнопка, но такой же код не работает.
В основном контекст, передаваемый в Navigator.of (context) .pop (); строка не совпадает с контекстом окна showDialog ... И я не знаю почему.
Пример кода:
<Code that decides when to call myDialog>
myDialog(context);
<Other code in a decision-tree although in the same root function>
if (condition) {
Navigator.of(context).pop();
}
Future<void> myDialog(BuildContext context) async {
return showCupertinoDialog(
context: context,
<Code that shows Body of dialog box>
),
}
Так что да, очевидно, что контекст передается это неправильно, но я не знаю почему.