提问者:小点点

Flutter AlertDialog Navigator弹出黑屏问题


flutter中的AlertDialog有一个奇怪的问题来取消对话框。我使用下面的代码片段来关闭flutter文档中提到的对话框。

 Navigator.of(dialogContext).pop();

但显示它是如何工作的,使应用程序进入非活动模式,并变成黑屏窗口。要让它再次工作,我必须干掉这个应用程序,然后重新启动。

下面是flutter中alertdialog的完整代码

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();
            },
          ),
        ],
      );
    },
  );
}

我还注意到它适用于一个按钮“Call”,没有任何问题,但不适用于取消警报对话框,正如您在两个按钮操作中看到的相同代码段。


共1个答案

匿名用户

只需添加rootnavigator:true

Navigator.of(dialogcon, rootNavigator: true).pop();

相关问题