首页 > 解决方案 > 闪屏出现延迟

问题描述

我正在尝试实现颤振 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());
    }
  }
}

现在从我的 HomeScreen 我点击一个按钮来导航到这个启动屏幕。它什么也不做

onPressed: () {
                  Get.to(SplashScreen());
               }

问题是我想在我的函数运行时显示圆形指示器,并且当它填充列表项以转到项目屏幕时,但是当我点击按钮以获取启动画面时,它会等待一段时间,直到启动画面出现然后立即进入项目屏幕,因为同时它填充了列表。当我不初始化函数时,它会立即进入初始屏幕,我会看到指示器。

为什么我得到这个功能?我认为它应该显示加载指示器并同时填充列表。但是似乎当我从 HomeScreen 中点击按钮时,该功能已初始化,并且当它的启动时出现启动画面。我究竟做错了什么?

标签: flutterdartsplash-screenflutter-getx

解决方案


你不是忘记调用update()你的计算函数了吗?

而且您的功能似乎是async,所以您应该await在填充列表之前


推荐阅读