我有一个带有两个按钮的界面,它们会弹出并返回 true 或 false,如下所示:
onPressed: () => Navigator.pop(context, false)
我需要调整应用栏中的后退按钮,所以它会弹出并返回 false。有没有办法做到这一点?
最佳答案
更简单的方法是将主体包裹在 WillPopScope 中,这样它就可以与 顶部的后退按钮和 Android 的后退按钮一起使用底部。
这里是两个后退按钮都返回 false 的示例:
final return = Navigator.of(context).push(MaterialPageRoute<bool>(
builder: (BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("New Page"),
),
body: WillPopScope(
onWillPop: () async {
Navigator.pop(context, false);
return false;
},
child: newPageStuff(),
),
);
},
));
在他们建议使用的其他答案中:
leading: BackButton(...)
我发现这适用于顶部的后退按钮,而不适用于 Android。
我还是举了一个例子:
final return = Navigator.of(context).push(MaterialPageRoute<bool>(
builder: (BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: BackButton(
onPressed: () => Navigator.pop(context, false),
),
title: Text("New Page"),
),
body: newPageStuff(),
);
},
));
关于带有返回数据的 Flutter Back 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51927885/