我对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);
},
),
],
);
});}
)
答案 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