从家里单击注销按钮后,我使用以下行导航到登录屏幕。但导航到登录屏幕后,如果我单击后退按钮,它将导航到主屏幕。我希望所有屏幕都会弹出,并且如果我从登录屏幕单击后退按钮,应用程序应该关闭。
这两条线对我来说都不起作用。如果有人知道这个帮忙... Navigator.of(context).pushReplacementNamed(LOGIN); Navigator.of(context).pushNamedAndRemoveUntil(LOGIN, (route) => false);
最佳答案
首先,您显然没有检查用户是否登录,因为注销后您不应该能够访问主页。您可以在 api 调用中进行检查,或者在主页的 initState() 方法中进行检查,以自动将用户重新路由到登录页面。
后退按钮会将您重定向到主页,因为您需要先清除所有路径,然后才能进入登录页面。试试这个:
onPressed:(){
clearSession();
Navigator.pop(context,true);
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => LoginScreen()),
);
},
如果没有之前的路线,则按下后退按钮时应用程序将关闭。但是,如果您想明确告诉 Flutter 在后退按钮上关闭应用程序,您可以执行类似 https://www.codegrepper.com/code-examples/dart/flutter+close+app+on+back+button 的操作
关于flutter - 通过单击后退按钮,注销后屏幕将导航到主屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72272205/