我的 showDialog 有问题,当我按下没有任何反应但如果我使用Navigator.pushNamed(context, "/screen1")它就可以了。我无法运行Navigator.pop(context),它不会返回任何错误。
_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);
},
),
],
);
});}
Run Code Online (Sandbox Code Playgroud)
在我的 build() 中:
IconButton(
iconSize: 30.0,
onPressed: () => _showDialog(context),
icon: Icon(
Icons.clear,
color: Colors.white,
),
Run Code Online (Sandbox Code Playgroud)
)
对于这个问题,上面的答案应该被接受,只是阐述了上面的答案
return showDialog(
context: context,
useRootNavigator: false, //this property needs to be added
builder: (BuildContext context) {....});
Run Code Online (Sandbox Code Playgroud)
使用 pop() 两次:-
Navigator.of(context).pop(); Navigator.of(context).pop();
原因:第一个弹出函数关闭对话框,第二个弹出函数关闭屏幕
尝试致电Navigator.of(context).pop();而不是Navigator.pop(context);
| 归档时间: |
|
| 查看次数: |
15548 次 |
| 最近记录: |