我正在我的 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/