首页 > 解决方案 > 有没有办法在不注销用户的情况下一键弹出 Flutter 应用程序中的所有屏幕?

问题描述

我希望用户能够通过单击电话后退按钮一次来退出应用程序(然后他会收到一条警告消息)。

但我发现的只是调用 to 的选项exit(0),但这是将用户注销。

我正在使用火力和颤振。

此外,当我在主页(登录后出现)时按下后退按钮时,我再次获得登录视图而不是退出应用程序。我该如何防止这种情况(因为我希望用户保持登录状态)

这些是我的 main.dart build() 中的代码:

return StreamProvider<User?>.value(
  value: logic.listenToUserAuth(),
  initialData: null, //user signed out
  child: MaterialApp(
    //initialRoute: '/login',
    //routes: this.routes,
    // passing the change in stream to child widgets
    home: MainWrapper(routes: this.routes,),
  ),

这些是来自 MainWrapper build() 的代码,它确定向用户显示哪个视图,取决于他是否登录,但它不起作用.. 用户总是获得“/登录”视图:

final user = Provider.of<User?>(context);
String initRout = "/login";
// the user logged in
if(user != null) {
  initRout = "/home_page.dart";
}
return MaterialApp(
  initialRoute: initRout,
  routes: routes,
);

谢谢

标签: androidfirebaseflutterdartflutter-provider

解决方案


我遇到了同样的问题,Get包解决了所有问题,使用Get包,然后使用 Get.offAll("spacify the screen which should be last in the stack"); 你完成了


推荐阅读