用Navigator.pop()摇动“ showDialog”

时间:2018-09-21 20:48:15

标签: dart flutter

我对showDialog有问题,当我按什么都没有时,但是如果我使用def ModString(s, name_replacement, position_replacement): return s.format(name=name_replacement, position=position_replacement) ,它将起作用。我无法运行Navigator.pushNamed(context, "/screen1"),它不会返回任何错误。

Navigator.pop(context)

在我的build()中:

_showDialog(BuildContext context) {
return showDialog(
    context: context,
    builder: (BuildContext context) {
      return AlertDialog(
        title: new Text("Alert Dialog title"),
        actions: <Widget>[
          new FlatButton(
            child: new Text("Back"),
            onPressed: () {
              //Navigator.pushNamed(context, "/screen1");
              Navigator.pop(context);
            },
          ),
        ],
      );
    });}

5 个答案:

答案 0 :(得分:3)

遇到了同样的问题。showDialog参数中有useRootNavigator: false,解决了我的问题。

答案 1 :(得分:1)

仅需详细说明以上答案,就可以接受以上答案

return showDialog(
context: context,
useRootNavigator: false, //this property needs to be added 
builder: (BuildContext context) {....});

答案 2 :(得分:1)

两次使用pop():-

Navigator.of(context).pop(); Navigator.of(context).pop();

原因:第一个弹出功能关闭对话框,第二个弹出功能关闭屏幕

答案 3 :(得分:0)

尝试致电Navigator.of(context).pop();而不是Navigator.pop(context);

答案 4 :(得分:0)

对于关闭对话框,您还可以使用:

Navigator.pop(context, true);

来源:https://docs.flutter.io/flutter/widgets/Navigator/pop.html