首页 > 解决方案 > Flutter:有没有办法知道何时加载列表视图构建器?

问题描述

我是 Flutter 的新手,我对 listview 构建器的行为并不完全确定,我正在做一个屏幕,它有一个带有多个卡的 listview 构建器,每个卡都有不同的信息和背景图像。我的问题是当应用程序第一次启动时,加载和构建卡片的资产可能需要 0.5 秒,同时用户会看到白色背景的卡片(它很短但仍然有点难看)。我尝试在开始时使用 true 的布尔值,显示带有圆形进度指示器的容器,在 0.5 延迟后将布尔值设置为 false,然后更改为列表视图。它没有工作,因为它在调用时加载了列表视图,所以我不知道我能做些什么来解决这个问题。

这是我试过的

void initState(){
    Future.delayed(const Duration(milliseconds: 500), () {
      setState(() {
        loading = false;
      });
    });
  }


Widget build(BuildContext context) {
    return loading ? circleLoading() : Scaffold(
...

标签: flutterdart

解决方案


 FutureBuilder(
              future: //API CALL,
              initialData: [],
              builder: (context, snapshot) {
                if (!snapshot.hasData || snapshot.data.isEmpty) 
                    return Center(child: CircularProgressIndicator());  //CIRCULAR INDICATOR
                else
                    return createTasksListView(context, snapshot);
              }),
        ),

推荐阅读