当应用程序检查颤动应用程序中的条件时,如何显示启动屏幕

D. *_*Go. 1 dart flutter

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

Gab*_*ndX 6

您需要确保在调用之前进行初始化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(),
      }
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

在调用之前发生的所有事情都runApp将在看到启动时完成。