【问题标题】:How to restore last route in Flutter如何恢复 Flutter 中的最后一条路由
【发布时间】:2019-11-21 17:02:48
【问题描述】:

我正在开发一个 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,
    );

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您需要跟踪用户访问过的最新路线并将其永久存储在某处,以便在应用重新启动后仍然存在。也许将共享首选项包视为一种简单的方法:

    https://pub.dev/packages/shared_preferences

    当应用程序启动时,查看共享首选项以查看您是否存储了以前的路线,然后导航到它(或将其设置为主路线)。如果没有,则默认使用 FirstScreen。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-23
        • 2019-08-23
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多