首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在列表中显示已加载的项目,而其余的项目正在flutter future builder中加载?

在Flutter中,可以使用FutureBuilder来实现在列表中显示已加载的项目,同时在FutureBuilder中加载其余的项目。

FutureBuilder是一个Widget,它接收一个Future作为参数,并根据Future的状态来构建不同的UI。在这种情况下,我们可以将已加载的项目作为一个Future传递给FutureBuilder,并在FutureBuilder中加载其余的项目。

以下是一个示例代码:

代码语言:txt
复制
Future<List<Project>> fetchProjects() async {
  // 模拟异步加载项目的过程
  await Future.delayed(Duration(seconds: 2));
  
  // 返回已加载的项目列表
  return [
    Project(name: '项目1'),
    Project(name: '项目2'),
    Project(name: '项目3'),
  ];
}

class Project {
  final String name;
  
  Project({required this.name});
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FutureBuilder<List<Project>>(
      future: fetchProjects(),
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          // 显示加载中的UI
          return CircularProgressIndicator();
        } else if (snapshot.hasError) {
          // 显示错误信息
          return Text('加载项目时出错:${snapshot.error}');
        } else {
          // 显示已加载的项目列表
          final projects = snapshot.data!;
          return ListView.builder(
            itemCount: projects.length,
            itemBuilder: (context, index) {
              final project = projects[index];
              return ListTile(
                title: Text(project.name),
              );
            },
          );
        }
      },
    );
  }
}

在上面的示例中,fetchProjects函数模拟了异步加载项目的过程,并返回一个包含已加载项目的Future。在MyWidget中,我们将fetchProjects作为future参数传递给FutureBuilder,并根据不同的连接状态和快照数据来构建不同的UI。

当连接状态为waiting时,显示一个加载中的进度指示器。当连接状态为done且没有错误时,显示已加载的项目列表。如果出现错误,显示错误信息。

这样,你就可以在列表中显示已加载的项目,同时在FutureBuilder中加载其余的项目。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter Shimmer 动画效果

加载时间在应用程序改进是不可避免。从用户体验 (UX) 角度来看,主要是向您用户展示正在加载。...处理向用户传递信息正在加载一种主流方法是在不准确加载物质类型形状上显示带有微光动画铬色调。 在在这篇博客,我们将探索 Flutter Shimmer 动画效果。...它可以很好地被利用,不是传统 ProgressBar 或 Flutter 结构可访问常见loading。 通常,在我们打开应用程序任何时候,我们都会看到具有动画loading。...此演示视频展示了如何在颤动创建微光动画效果。它展示了如何在 Flutter应用程序中使用shimmer包来实现微光动画效果。...它显示代码何时成功运行,然后显示内容正在从虚拟数据加载是带有持续时间微光动画效果,然后加载完成然后内容将显示在您设备上。

5.5K20

Flutter 专题】图解 ListView 下拉刷新与上拉加载 (一)

和尚上次学 ListView 时,只学习了一下异步请求数据加载新闻和 Loading 等待小知识点,但对于新闻列表数据更新和加载更多是必不可少实现【下拉刷新】与【上划加载更多】方式有很多种...,今天和尚整理一下使用三方库 flutter_refresh 来实现列表数据更新。...问题二:下拉刷新过程,接口数据重复加载? 解决方式: 和尚目前还没有涉及缓存等方面的,单纯一个下拉刷新应该是重新调用初始接口,首先要清空列表,不然接口数据重复实实在在会出现。...,显示正常,但是运行时 Log 报错,提示 Widget 创建?...onHeaderRefresh() 处理是数据和 Widget,和尚自己方法是单纯数据处理。

1.6K31

Android开发者Flutter入门(一)

那么我们就用Flutter来开发一个稍微像样点app吧。 我们开发是一个简单新闻app。主要包含两个页面,一个首页,显示一个头条新闻列表,点击里面的某个头条,就跳转到那条新闻详情页面。...返回数据如何在界面上显示出来? Android程序员:我用RecylerView。 如何显示网络图片? Android程序员:我用Glide。 页面之间如何跳转?...接下来我们就说说以上这些功能如何在Flutter里实现,先来两张截图感受一下: 新闻列表 新闻详情 新闻源我们使用是https://newsapi.org。...在状态变为加载完成时,build函数内会用ListView.builder来创建显示列表。...所有的Flutter代码都存放在lib目录下。pubspec.yaml文件项目的配置文件,类似于Android工程build.gradle。

3.2K10

干货 | 携程酒店Flutter性能优化实践

,可以把widget树进行拆分,只有图片和图片蒙层放入builder方法其余widget作为child传入builder,同时用Stack widget实现两部分UI组合,这样改进之后,FPS在动画过程中有较大提升...d) 减少耗时计算,放到Isolate Flutter应用Dart代码执行在UI RunnerDart是单线程,我们平时使用异步任务Future都是在这个单线程Event Queue之中...e) 懒加载 能够实现懒加载有ListView.builder、PageView.builder和GridView.builder,这些widget可以用户长列表或重复容器结构UI,通过判断单个item...酒店周边景点美食购物列表的卡片数量超过20个,最初使用Row 组件构建时,第一次构建时间超过25ms,达不到60FPS16ms绘制时间要求。当然,按需加载也有性能开销,出现在列表滑动过程。...,使用了 saveLayer Widget 会自动显示为棋盘格式,并随着页面刷新闪烁。

1.9K10

开始使用-编写你第一个Flutter应用程序 顶

每次单击热重新加载或保存项目时,都会在正在运行应用程序随机选择不同单词对。...当用户滚动时,ListView小部件显示列表将无限增长。 ListViewbuilder工厂构造函数允许您根据需要懒惰地构建列表视图。...您将学习如何在主路由和新路由之间导航。 在Flutter,导航器管理包含应用程序路由堆栈。 将路由推入导航器堆栈,将显示更新为该路由。 从导航器堆栈中弹出路由,将显示返回到前一个路由。...1.向RandomWordsState构建方法AppBar添加列表图标。 当用户点击列表图标时,包含收藏夹项目的新路线被推送到导航器,显示该图标。...新页面的内容是使用匿名函数在MaterialPageRoutebuilder属性构建。 将呼叫添加到Navigator.push,突出显示代码所示,将路由推送到导航器堆栈。

9.5K20

抖音强大对手来了,用Flutter手撸一个抖音国际版,看看有多炫

前言 由于中间几个月项目天天加班,导致没没时间更新,最近一段时间对前端进行了重构,加了很多页面,登录、注册、关注、个人中心等,目前写这个纯属业余个人爱好,所以断断续续继续在做.........版本,ios版本正在解决账号问题 效果如下: 架构更新 之前技术采用flutter前端,后端api则对接是抖音官方api,由于抖音官方api更新频繁,导致经常播放不了,所以索性自己来写服务器后端...采用FutureBuilder对界面请求数据异步处理,当加载完成后才播放,效果更佳 代码如下: eturn FutureBuilder( future: videos, builder...snapshot.connectionState}'); } }); 这里可以看到当snapshot.connectionState == ConnectionState.waiting时候请求数据正在加载...,则显示加载图标loading 当snapshot.connectionState == ConnectionState.done 时,此时数据已经加载完毕,但是加载完毕有可能也没有数据,所以需要判断不同情况

1K20

FlutterDojo设计之道—状态管理之路(七)

Provider在列表中使用 在前面的讲解,我们大部分场景都是在普通Box布局,相信大家对Provider使用已经非常清楚了,下面来看下在List使用场景,相信对于很多App来说,列表应该是大部分页面的核心...UI,所以,到底如何在列表「下拉刷新」、「上拉加载更多」、「Item点击修改状态」这几种场景下来使用Provider呢?...官方并没有给出很好建议,官方Demo也都是在静态列表演示,并不涉及到列表修改,所以下面,我将和大家一起讨论下如何在列表中使用Provider。...下面我们来考虑下如何通过Selector来改造整个Demo,完成数据刷新、数据加载更多、显示Checked数量几个功能。...flutter_dojo/category/backend/providerstate4widget.dart 实际上操作就是在刷新和加载分页数据这些操作时候,让shouldRebuild为true

90610

Flutter完整开发实战详解(二、 快速开发实战篇)

上面代码还缺少了 TabBarItem 点击,因为这块被放到了外部实现。当然你也可以直接在内部封装好控件,直接传递配置数据显示,这个可以根据个人需要封装。  ...作为上滑加载更多 Loading 显示。  ...矢量图标库是引入 ttf 字体库文件实现,在 Flutter 通过 Icon 控件,加载对应 IconData 显示即可。  ...其实 WillPopScope 并不是监听返回按键,名字一般,是当前页面将要被pop时触发回调。   通过onWillPop回调返回Future,判断是否响应 pop 。...: GSYGithubAppWeex GSYGithubApp React Native 文章 《Flutter完整开发实战详解(一、Dart语言和Flutter基础)》 《跨平台项目开源项目推荐》

4.9K30

Flutter完整开发实战详解(二、 快速开发实战篇)

上面代码还缺少了 TabBarItem 点击,因为这块被放到了外部实现。当然你也可以直接在内部封装好控件,直接传递配置数据显示,这个可以根据个人需要封装。  ...作为上滑加载更多 Loading 显示。  ...矢量图标库是引入 ttf 字体库文件实现,在 Flutter 通过 Icon 控件,加载对应 IconData 显示即可。  ...其实 WillPopScope 并不是监听返回按键,名字一般,是当前页面将要被pop时触发回调。   通过onWillPop回调返回Future,判断是否响应 pop 。...: GSYGithubAppWeex GSYGithubApp React Native 文章 《Flutter完整开发实战详解(一、Dart语言和Flutter基础)》 《跨平台项目开源项目推荐》

5.1K10

Flutter快速开发——列表分页加载封装

在 App 列表数据加载是一个很常见功能,几乎大多数 App 中都存在列表数据展示,而对于大数据量列表展示,为提高用户体验、减少服务器压力等,一般采用分页加载列表数据,首次只加载一页数据,当用户向下滑动列表到底部时再触发加载下一页数据...为方便开发过程快速实现列表分页功能,对列表分页加载统一封装是必不可少,这样在开发过程只需关注实际业务逻辑不用在分页数据加载处理上花费过多时间,从而节省开发工作量、提高开发效率。...实现功能 封装后列表分页加载实现功能主要如下: • 列表数据显示 • 下拉刷新 • 上拉加载 • 自动判断是否还有更多数据 • 自动处理分页逻辑 • 列表 item 点击事件封装 使用到第三方库 •...依赖管理实现 • Flutter之GetX依赖注入使用详解 • Flutter之GetX依赖注入tag使用详解 具体实现 前面介绍了对于列表分页加载封装整体分为三层:State、Controller...",), child: builder(), ); } 对 SmartRefresher 参数进行封装,添加了 header 和 footer 统一处理,这里可以根据项目实际需求进行封装,

6K31

为什么说Flutter让移动开发变得更好?

/Activity列表布局 在Fragment / Activity创建适配器,布局管理器等实例 在后台线程上从网络下载电影数据 回到主线程设置适配器项目 现在需要考虑保存和恢复列表状态等细节...下面看看如何在Flutter实现上面的例子: 为电影项目创建一个无状态Widget(无状态,因为包含静态属性),接收一个movie(例如Dart类)作为构造函数参数,并以声明方式描述布局,同时绑定电影值...该应用程序包含了电影和电视节目,并且开发过程没有遇到任何困难。我通过构建用于加载显示数据泛型类来实现,这使得我可以重复使用电影和演出每个布局。...Flutter可能远远超出Android和iOS领域; 你应该有听说Google正在开发一个名为Fuchsia新操作系统。 事实证明,Fuchsia用户界面正在使用Flutter构建。...这样,我们应用程序状态就不会与Views显示内容不同步。 Flutter正是这样做! 还有另外一个问题:你有没有问过为什么在Android上创建工具栏菜单非常复杂?

2K10

构建实用Flutter文件列表:从简到繁完美演进

如果没有,不要担心,你可以通过命令flutter create 文件列表项目来创建一个新Flutter项目。 接下来,让我们打开项目,并找到lib文件夹。...根据按钮点击状态,我们将显示列表视图或网格视图。 2. 构建网格视图 接下来,让我们来实现网格视图布局。我们可以使用FlutterGridView组件来展示文件列表。...GridView.builder方法与ListView.builder方法类似,但它将子项排列成网格不是列表。...为了解决这个问题,让我们来学习一下如何在Flutter处理文本溢出,以确保文件名能够清晰可见。 1. 文本截断 我们可以使用FlutterText组件overflow属性来处理文本溢出问题。...现在,我们文件列表已经可以动起来了!(GIF动不了啊)(又可以动了) 总结 在本文中,我们详细探讨了如何在Flutter应用构建文件列表,并逐步改进和优化这个文件列表,以提升用户体验和功能性。

15611

Flutter | 滚动组件,ListView,GridVIew等

可滚动组件 当组件内容超过当前显示视口(ViewPort)时,如果没有特殊处理,Flutter 就会提示 Overflow 错误,为此,Flutter 提供了多种可滚动组件,用于显示列表和长布局; 可滚动组件都直接或间接包含一个...,在 Flutter ,术语 ViewPort (视口) ,如无特别说明,则是指一个 Widget 实际显示区域; 例如,一个 ListView 显示区域高度是 800 像素,虽然其列表项总高度可能远远超过...组件; 典型,在一个懒加载列表,如果将列表包裹在 AutomaticKeepAlive ,在改了吧划出视口时,他也不会被 GC 回收(垃圾回收),他会使用 KeepAliveNotification...,也就是说改构造函数是支持基于 Sliver 加载模型;下面看一下核心参数: ListView.builder({ // ListView公共参数省略 ......itemCount:列表数量,如果为 null ,则代表无限列表 可滚动组件构造函数如果需要一个列表Builder ,那么通过构造函数构建通常就是支持 Sliver 加载模型,反正则不支持

8.4K20

Flutter TDD 心路历程

从无到有 案例:实现一个通用支持上滑加载下拉刷新 Flutter 列表 用例梳理: 加载过程显示 loading 动画 加载结果为空列表显示 empty 页面 加载结果失败显示 error 页面 ....继续完善功能,增加用例:加载成功且数据不为空,列表展示对应数据 item 编写单测 思考:我们期望传入 A,B,C 三个数据,在加载成功之后,页面能够显示 A,B,C 三个 item。...= feedModel.listData.length,在用例即为 4, ListView builder 实现,我们判断了当 index == count - 1 时候,返回 loading...思考:由于「加载更多」是由列表内部触发,如果我们想知道加载什么时候结束,我们就必须拿到加载句柄,在 Dart ,一般我们用 Future 来表示,于是我们能想到:我们可以从外部传入一个返回 Future...builder; // 构建 item 回调 final Future> Function(int) onLoadMore; // 首次加载加载更多 Future 函数,

1.1K20

Flutter实战 | 从 0 搭建「网易云音乐」APP(一、创建项目、添加插件、通用代码)

本章节为第一节,从创建项目说起。 创建「网易云音乐」项目 首先看一下本地 Flutter 环境: ? 创建命令就都知道了,不用命令的话,用 AS 或者 VS 更简单。 ?...横向空组件(用于占位) v_empty_view.dart 纵向空组件(用于占位) loading.dart 加载组件 widget_future_builder.dart 网络请求组件 widget_net_error.dart...网络请求失败组件 其中 widget_future_builder.dart 在我上一篇文章:Flutter | 定义一个通用多功能网络请求 Widget 已经说过了,这里就不多说了。...挑几个没说过说一下。 loading.dart 用于显示加载组件。 开始时候考虑用 showDialog 来做,但是它默认会把背景变成半透明黑色。...showLoading 逻辑如下: 1.首先判断 isLoading 是否为 true,如果正在显示 loading,那么则不作操作2.如果不为 true,则显示 loading,并把状态置为 true3

1.9K00

Flutterhtml内容加载

上一篇文章Flutter 下拉刷新和上拉加载,我介绍了如何在Flutter实现下拉刷新和上拉加载效果,今天我们继续以上文中代码为例,来介绍如何加载HTML文档内容。...首先来聊聊如何通过flutter_html这个第三方库来解析html文档内容吧: 这是列表页面的代码,里面包含下拉刷新、上拉加载,以及加载动画: import 'dart:convert'; import...1时候, * 说明当前ListTile是最后一个ListTile, * 此时需要上拉加载数据,因此要在最底部显示一个加载圈圈...在Flutter,实现WebView加载html内容第三方组件有很多,这里我们给推荐flutter_inappbrower这一个第三方组件。...flutter_html可用于加载轻量级html文本内容,对于复杂远程html内容,我们需要使用webview来加载flutter_inappbrower是Flutter实现WebView最好用第三方组件

16.5K43

Flutter 2.8正式版发布了,还不来看看

你还可以通过在可用用户标签列表中选择此用户标签过滤器(如果存在)来加载应用启动配置文件。选择此标签会显示应用启动个人资料数据。...如果你正在使用 google_maps_flutter 插件或 video_player 插件 Web 版本,或者你正在遵循 Flutter 团队关于 如何优化网络上显示图像 建议,那说明你已经在使用平台视图了...在之前 webview_flutter 版本,Hybrid composition 已经可用,但不是默认现在它修复了先前默认以虚拟显示模式运行许多问题。...如果你正在使用特定于平台原生代码构建插件,你可以 使用项目 pubspec.yaml pluginClass 属性 来实现,该属性将指定提供原生功能原生类名: flutter: plugin...这使 widget 能够处理按键并拦截它在整个 widget tree 其余部分传递。我们在 Flutter 2.5 完成了这项工作落地,并在 Flutter 2.8 修复了许多问题。

22.3K30

Flutter开发-可滚动组件

为此,Flutter提供了多种可滚动组件(Scrollable Widget)用于显示列表和长布局。...addAutomaticKeepAlives:该属性表示是否将列表项(子组件)包裹在AutomaticKeepAlive 组件;典型地,在一个懒加载列表,如果将列表项包裹在AutomaticKeepAlive...ListView.builder ListView.builder适合列表项比较多(或者无限)情况,因为只有当子组件真正显示时候才会被创建,也就说通过该构造函数创建ListView是支持基于Sliver...下面看一下ListView.builder核心参数列表: ListView.builder({ // ListView公共参数省略 ......可滚动组件构造函数如果需要一个列表Builder,那么通过该构造函数构建可滚动组件通常就是支持基于Sliver加载模型,反之则不支持,这是个一般规律。

4.4K20

Flutter 专题】21 图解 ListView 下拉刷新与上滑加载(三)

RefreshIndicator 下拉刷新 Flutter 提供了自带刷新效果 RefreshIndicator,这也是网上大神们用最多 Widget 之一,使用方式也很简单,RefreshIndicator...ScrollController 上滑动加载更多 至此,列表下拉刷新就完成了,接下来处理【上滑加载更多】,这时我们可以借助 ScrollController,用来监听列表是否滑动到底部,主要分两步...padding: EdgeInsets.fromLTRB(10.0, 0.0, 0.0, 0.0), child: new Text('正在加载...优化二:第一次初始化加载数据时添加 loading 动画 RefreshIndicator 自带刷新动画,所以和尚只是在第一次加载数据时添加一个 loading 动画,和尚只是填了一个小小状态判断...EdgeInsets.fromLTRB(0.0, 35.0, 0.0, 0.0), child: new Center( child: new Text('正在加载

1.2K41
领券