在Flutter的启动画面期间加载数据

时间:2019-10-29 21:17:39

标签: flutter splash-screen

我需要知道在闪屏中可见初始屏幕期间,有什么方法可以执行任务。我知道如何在闪屏中添加启动画面,但是我不知道如何在启动画面可见时执行后台操作。我在互联网上找不到任何东西,请帮忙。

2 个答案:

答案 0 :(得分:2)

是,可以。 main()函数实际上可以标记为async,因此您可以在runApp(...)方法主体中运行main()之前做任何需要做的事情,甚至异步地< / strong>。这样,在调用runApp(...)之前,将显示启动屏幕,直到检索到异步结果为止。例如:

Future<void> main() async {

// Do whatever you need to do here
final home = await setHomeWidgetDependingOnLoginStatus();

return runApp(MyApp(home: home));
}

答案 1 :(得分:1)

animated_splash_screen 包很好地做到了这一点。将其添加到您的 pubspec.yml

    animated_splash_screen: ^1.1.0
AnimatedSplashScreen.withScreenFunction(
  splash: 'images/splash.png',
  screenFunction: () async{

  // Your code here

    return MainScreen();
  },
  splashTransition: SplashTransition.rotationTransition,
  pageTransitionType: PageTransitionType.scale,
)

这将加载并保持启动画面,直到您的功能完成。

您的函数必须返回一个小部件,在这种情况下是您的主屏幕。这也允许根据您的数据进行动态路由,例如用户是否登录。