【问题标题】:Splash screen appears with delay闪屏出现延迟
【发布时间】:2021-04-06 10:55:08
【问题描述】:

我正在尝试实现 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 中点击按钮时,该功能已初始化,并且当它的启动时出现启动画面。 我做错了什么?

【问题讨论】:

    标签: flutter dart splash-screen flutter-getx


    【解决方案1】:

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

    看来你的函数是async,所以你应该在填充列表之前await它

    【讨论】:

    • 我试过 await 但没关系,问题是在计算完成之前启动屏幕不会出现,并且应该一旦出现就应该完成。
    猜你喜欢
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    相关资源
    最近更新 更多