Flutter:移动到新屏幕而不提供返回上一屏幕的导航

标签 flutter navigation screen navigator

我正在我的 Flutter 应用中实现身份验证流程。

尝试登录后,CheckAuth (检查用户是否登录,然后相应地打开主屏幕或注册屏幕)使用以下代码打开:

  void _signIn() async {
    await _auth
        .signInWithEmailAndPassword(
            email: _userEmail.trim(), password: _userPassword.trim())
        .then((task) {
      // go to home screen
      if (task.getIdToken() != null) {
        setState(() {
          Navigator.pushReplacement(
              context,
              new MaterialPageRoute(
                  builder: (BuildContext context) => new CheckAuth()));
        });
      } else {
        print("Authentication failed");
      }
    });
  }

问题:我可以成功登录应用程序,但如果我在登录后点击返回按钮,它会返回登录屏幕(虽然我希望它会退出应用程序)。

问题:如何在 Flutter 中从一个屏幕移动到另一个屏幕而无需返回?

我是否需要以某种方式删除导航器历史记录?或者根本不使用导航器?我尝试了 Navigator.replace 方法,但它似乎不起作用。

最佳答案

离开认证界面时也需要使用Navigator.pushReplacement。不仅在重定向到登录页面时。

关于Flutter:移动到新屏幕而不提供返回上一屏幕的导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50037710/

相关文章:

dart - Flutter 如何防止子进程与父进程轮换?

javascript - 响应式水平菜单在调整大小时无法正常工作

ios - 在某种情况下移动到下一个屏幕?

flutter - SocketException :Connection failed (OS Error: Network is unreachable, errno = 101),地址 = 10.0.2.2,端口 = 80

flutter - 是否可以在一个 Widget 中有多个 StreamBuilder?

javascript - 如何防止激活/停用移动按钮后导航消失?

javascript - 如何为移动设备制作导航栏

windows - 防止窗口被拖过屏幕边缘

ios - 横向启动画面未加载

flutter - Dart:如何在不调用函数的情况下引用带有参数的函数?