Вот как мы закрываем диалог из INSIDE
showSomeDialog() {
return showDialog(
context: context,
builder: (BuildContext contextPopup) {
return AlertDialog(
content: Center(
child: RaisedButton(
onPressed: () {
Navigator.of(contextPopup).pop();
},
child: Text('Close me inside'),
),
),);
}
);
}
Как закрыть этот диалог из OUTSIDE ? Другими словами, как виджет с отслеживанием состояния, создающий этот диалог, может получить доступ к переменной contextPopup
? Проблема с Navigator.of(context).pop()
заключается в том, что он закроет самый верхний виджет в стеке навигации, а не этот конкретный c диалог.
В Android, чтобы программно закрыть диалог из вне , вы просто делаете:
dialog.dismiss();