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