flutter - 当应用检查Flutter应用中的状况时,如何显示启动屏幕

标签 flutter dart

在我的flutter应用程序中,我检查是否有用户登录。我的问题是,即使有用户登录,它也会显示登录页面一段时间,然后跳转到主页。我该如何阻止呢?

最佳答案

您需要确保在调用runApp()之前已进行了初始化。在变量中声明initialRoute,以便您可以根据用户是否登录来更改它。
另外,您必须调用WidgetsFlutterBinding.ensureInitialized()才能等到处理完成,然后将main方法声明为async

像这样:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  var initialRoute = 'login';

  var isUserLoggedIn = await User.IsUserLoggedIn();

  if (isUserLoggedIn) {
    initialRoute = 'home';
  }

  runApp(MyApp(initialRoute: initialRoute));
}

class MyApp extends StatelessWidget {
  final String initialRoute;

  MyApp({@required this.initialRoute});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      initialRoute: initialRoute,
      routes: {
        'login': (context) => LoginPage(),
        'home': (context) => HomePage(),
      }
    );
  }
}

在看到启动画面时,将完成对runApp调用之前发生的所有操作。

关于flutter - 当应用检查Flutter应用中的状况时,如何显示启动屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61461859/

相关文章:

flutter - 使用sendPasswordResetEmail()函数时强制用户满足密码要求

Android Studio Flutter - 虚拟设备正在加载或卡住

flutter - 我们可以使用 apache kafka 作为后端来构建 flutter 移动聊天应用程序吗?

dart - Flutter - 模拟器和手机中的布局不同

flutter - 如何将背景图像添加到 flutter

android - 如何查询到 Firestore 子文档

flutter - 你如何创建一个对象列表来传递给 Flutter 中的小部件?

list - 如何在 typeahead flutter 中进行 suggestCallback?

flutter - 使用 ScaffoldMessenger GlobalKey 时将正确的主题应用于 SnackBar

dart - 如何在 Flutter 的 TextField 中使用 onKeyUp 事件