带有返回数据的 Flutter Back 按钮

标签 flutter dart back-button

我有一个带有两个按钮的界面,它们会弹出并返回 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/

相关文章:

android - Flutter 更改右上角的文本位置

flutter - SingleChildScrollView中的Flutter ListView.Builder无法滚动

firebase - 如何在 Flutter 中将 XFile 转换为文件

dart - Dart-尝试扩展类时的 'no such type'

flutter - 在Flutter中按下按钮后更新文本

flutter - 如何在 flutter 中绘制自定义形状并拖动该形状?

android - 在 Flutter App "task assembleDebug failed with exit code 1"上构建失败

Android监听后退按钮长按

android - Android Studio-后退按钮不会在每个设备上返回相同的页面

android - 在 Android 中退出应用程序