У меня странная проблема с AlertDialog во флаттере, чтобы закрыть диалоговое окно.Я использовал приведенный ниже фрагмент кода, чтобы закрыть диалоговое окно, как указано в документации по флаттеру.
Navigator.of(dialogContext).pop();
Но покажите, как это не работает, переведите приложение в неактивный режим и превратитесь в черное окно экрана.Чтобы это снова заработало, мне нужно убить приложение и перезапустить снова.
Здесь приведен полный код alerttdialog во флаттере
Future<Null> _showDialogContactDial(context, Contact contactRecord) async {
return showDialog<Null>(
context: context,
barrierDismissible: true, // user must tap button!
builder: (BuildContext dialogContext) {
return new AlertDialog(
title: new Text('Confirm Number'),
content: new SingleChildScrollView(
child: new ListBody(
children: <Widget>[
new TextFormField(
maxLines: 1,
decoration: new InputDecoration(hintText: 'Number'),
keyboardType: TextInputType.number,
autofocus: false,
initialValue: contactRecord.phoneNumber.number,
),
],
),
),
actions: <Widget>[
new FlatButton(
child: new Text(
'Call',
style: TextStyle(color: Colors.black),
),
onPressed: () {
Navigator.of(dialogContext).pop();
_launchURL(
context);
},
),
new FlatButton(
color: Colors.red,
child: new Text('Close', style: TextStyle(color: Colors.white)),
onPressed: () {
Navigator.of(dialogContext).pop();
},
),
],
);
},
);
}
Я также заметил, что он работает для одной кнопки «вызов» без каких-либо проблем, но не для диалога предупреждения об отмене, как вы видите водин и тот же фрагмент кода в обоих действиях кнопки.
Помощь будет принята с благодарностью.