我正在开发Flutter应用,但遇到了问题。 在我的main.dart中,将家庭路由设置为“ FirstScreen”,然后用户可以转到LoginScreen登录该帐户。因此,如果我按下主页按钮,然后尝试重新打开该应用,则出现的屏幕是FirstScreen,那么如何显示用户看到的最后一条路线?
我已经在Flutter文档和StackOverflow中的其他问题上搜索了一些解决方案,但没有找到对我有用的东西。
这是我的main.dart版本。
Widget build(BuildContext context) {
return MaterialApp(
home: FirstScreen(),
routes: {
'/screen1' : (context) => Screen1(),
'/homeScreen' : (context) => HomeScreen(navigatorKey: navigatorKey,),
'/registerScreen' : (context) => RegisterScreen(),
'/screen2' : (context) => Screen2(),
'/firstScreen' : (context) => FirstScreen(),
'/userProfileScreen' : (context) => UserProfileScreen(),
},
navigatorKey: navigatorKey,
);
答案 0 :(得分:0)
您需要跟踪用户访问过的最新路线,并将其存储在持久的位置,以便在应用重启后不受影响。也许将共享首选项包视为一种简单方法:
https://pub.dev/packages/shared_preferences
应用启动后,查看共享首选项以查看是否存储了先前的路线,然后导航至该路线(或将其设置为本地路线)。如果没有,请默认使用FirstScreen。
答案 1 :(得分:0)
我已经找到了使用WidgetBindingObserver的解决方案,并将此行:WidgetsBinding.instance.addObserver(this);
放入每个StatefulWidget initState中。