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,在我的颤振应用程序中,我检查是否有用户登录。我的问题是,即使有用户登录,它也会显示登录页面一段时间,然后跳转到主页。如何停止此操作?在调用runApp之前,您需要确保正在进行初始化。在变量中声明initialRoute,以便根据用户是否登录进行更改。 您还必须调用WidgetsFlutterBinding.ensureInitialized,以便能够等待处理完成,并将主方法声明为async 大概是这样的: void main() async { WidgetsFlutterBinding.e

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

在调用runApp之前,您需要确保正在进行初始化。在变量中声明initialRoute,以便根据用户是否登录进行更改。 您还必须调用WidgetsFlutterBinding.ensureInitialized,以便能够等待处理完成,并将主方法声明为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之前发生的所有事情都将在看到飞溅时完成。

您需要确保在调用runApp之前进行初始化。在变量中声明initialRoute,以便根据用户是否登录进行更改。 您还必须调用WidgetsFlutterBinding.ensureInitialized,以便能够等待处理完成,并将主方法声明为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之前发生的所有事情都将在看到飞溅时完成。

它说IsUserLoggedIn不是为“User”类型定义的,我把它作为一个例子,说明了如何以及在哪里进行调用。在这种情况下,您需要使用自己的方法来验证用户是否已登录。可能是查看SharedReference或调用Firebase getCurrentUser方法。希望有帮助!它说IsUserLoggedIn不是为“User”类型定义的,我只是把它作为一个例子,说明如何以及在哪里进行调用。在这种情况下,您需要使用自己的方法来验证用户是否已登录。可能是查看SharedReference或调用Firebase getCurrentUser方法。希望有帮助!