如何解决闪屏出现延迟
我正在尝试实现 flutter Getx 插件并制作了一些像这样的启动画面:
class SplashScreen extends StatelessWidget {
const SplashScreen({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return GetBuilder(
init: SplashController(),builder: (_) => Scaffold(
body: Center(
child: CircularProgressIndicator(),),)
);
}
}
然后我写了一个像这样的splashcontroller:
class SplashController extends GetxController {
@override
void onReady() {
// TODO: implement onReady
super.onReady();
myFunctionCalculations();
final Controller _controller = Get.put(controller());
List items = _controller.items;
if (items > 0) {
Get.off(OnePlayerScreen());
}
}
}
现在我从我的主屏幕点击一个按钮来导航到这个初始屏幕。它什么都不做
onPressed: () {
Get.to(SplashScreen());
}
问题是我想在我的函数运行时显示圆形指示器,当它填充列表项以转到项目屏幕时,但是当我点击按钮以获取初始屏幕时,它会持续一段时间,直到启动画面出现,然后立即进入项目屏幕,因为同时它填充了列表。当我不初始化该函数时,它会立即进入初始屏幕并看到指示器。
为什么我会得到这个功能?我认为它应该显示加载指示器并同时填充列表。但是似乎当我从 HomeScreen 中点击按钮时,该功能已初始化,并且当它出现时,会出现启动画面。 我做错了什么?
解决方法
您是不是忘记在计算函数中调用 update()
?
看来你的函数是async
,所以你应该在填充列表之前await
它