Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何恢复颤振中的最后一条路径_Flutter_Dart - Fatal编程技术网

Flutter 如何恢复颤振中的最后一条路径

Flutter 如何恢复颤振中的最后一条路径,flutter,dart,Flutter,Dart,我正在开发一个颤振应用程序,我有一个问题。 在main.dart中,我设置了一个主路径,即“FirstScreen”,然后用户可以进入LoginScreen登录帐户。因此,如果我按下home按钮,然后尝试重新打开应用程序,出现的屏幕是FirstScreen,那么如何显示用户看到的最后一条路线 我在Flatter文档和StackOverflow中的其他问题上搜索了一些解决方案,但没有找到适合我的 这是我主要的飞镖造型 Widget build(BuildContext context) {

我正在开发一个颤振应用程序,我有一个问题。 在main.dart中,我设置了一个主路径,即“FirstScreen”,然后用户可以进入LoginScreen登录帐户。因此,如果我按下home按钮,然后尝试重新打开应用程序,出现的屏幕是FirstScreen,那么如何显示用户看到的最后一条路线

我在Flatter文档和StackOverflow中的其他问题上搜索了一些解决方案,但没有找到适合我的

这是我主要的飞镖造型

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,
    );

您需要跟踪用户访问过的最新路线,并将其存储在某个持久的位置,以便在应用程序重新启动后仍然有效。也许可以将共享首选项包看作一种简单的方法:


当应用程序启动时,查看共享首选项以查看是否存储了上一条路线,并导航到该路线(或将其设置为主路线)。如果没有,则返回第一个屏幕作为默认设置。

我已经找到了一个解决方案,使用WidgetBindingObserver,并将这一行放在下面:
WidgetsBinding.instance.addObserver(this)在每个StatefulWidget initState中