我有以下内容AlertDialog.
showDialog(
context: context,
child: new AlertDialog(
title: const Text("Location disabled"),
content: const Text(
"""
Location is disabled on this device. Please enable it and try again.
"""),
actions: [
new FlatButton(
child: const Text("Ok"),
onPressed: _dismissDialog,
),
],
),
);
Run Code Online (Sandbox Code Playgroud)
我怎么能_dismissDialog()解雇说AlertDialog?
Col*_*son 67
Navigator.pop()应该做的伎俩.您还可以使用它来返回对话框的结果(如果它向用户显示了选项)
Abd*_*ؤمن 26
Navigator.of(context, rootNavigator: true).pop('dialog')
Run Code Online (Sandbox Code Playgroud)
和我一起工作
Navigator.of(dialogContext).pop()否则,如果您从“主”页面导航到“详细信息”页面,则可以关闭页面
showDialog(
context: context,
builder: (dialogContext) {
return Dialog(
child: Column(
children: [
Text("Content"),
RaisedButton(
onPressed: () => Navigator.of(dialogContext).pop(),
child: Text("Close"),
)
],
),
);
},
);
Run Code Online (Sandbox Code Playgroud)
您可以使用以下任何一种:
Navigator.of(context).pop();
Navigator.pop(context);
Run Code Online (Sandbox Code Playgroud)
单击平面按钮时关闭警报对话框的示例
RaisedButton(
onPressed: () {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text('Are you sure?'),
content: Text('Do you want to remove item?'),
actions: <Widget>[
FlatButton(
onPressed: () => Navigator.of(context).pop(false),// We can return any object from here
child: Text('NO')),
FlatButton(
onPressed: () => Navigator.of(context).pop(true), // We can return any object from here
child: Text('YES'))
],
)).then((value) =>
print('Selected Alert Option: ' + value.toString()));
},
child: Text('Show Alert Dialog'),
),
Run Code Online (Sandbox Code Playgroud)
上面的代码有两个独特的东西,用于提供对话框的回调结果
Navigator.of(context).pop(false) -- 当我们按下 NO 时返回 false 值 Navigator.of(context).pop(true) -- 当我们按下 YES 时返回 true 值
基于这些返回值,我们可以在它之外执行一些操作或维护对话框状态值
一般来说 Navigator.pop(context);有效。
但是如果应用程序有多个 Navigator 对象并且dialogBox没有关闭,那么试试这个
Navigator.of(context, rootNavigator: true).pop();
Run Code Online (Sandbox Code Playgroud)
如果要传递结果调用,请尝试
Navigator.pop(context,result);
Run Code Online (Sandbox Code Playgroud)
或者
Navigator.of(context, rootNavigator: true).pop(result)
Run Code Online (Sandbox Code Playgroud)
Navigator.pop(_)
Run Code Online (Sandbox Code Playgroud)
为我工作,但Flutter团队的图库包含使用以下示例:
Navigator.of(context, rootNavigator: true).pop()
Run Code Online (Sandbox Code Playgroud)
这也有效,我很想效仿他们的领导。
| 归档时间: |
|
| 查看次数: |
19065 次 |
| 最近记录: |