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

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

ScrollController 上滑动加载更多 至此,列表下拉刷新就完成了,接下来处理【上滑加载更多】,这时我们可以借助 ScrollController,用来监听列表是否滑动到底部,主要分两步...: RefreshIndicator( onRefresh: _loadRefresh, child: ListView.builder( itemCount:...小优化 优化一:【上滑加载更多】添加动画效果 添加一个加载更多布局 Widget; 在 itemCount 中将 item 个数 +1; 添加监听判断,当滑到最后一个 item 时展示加载更多到布局...优化二:第一次初始化加载数据时添加 loading 动画 RefreshIndicator 自带刷新动画,所以和尚只是在第一次加载数据时添加一个 loading 动画,和尚只是填了一个小小状态判断...,如果有不对地方还希望多多指教。

1.3K41
您找到你想要的搜索结果了吗?
是的
没有找到

android使用flutterListView实现滚动列表示例代码

现如今打开一个 App,比如头条、微博,都会有长列表,随着我们不断地滑动,视窗内内容也会不断地更新。今天就用 Flutter 实现一下这种效果。 ?...这里表现其实就相当于有一个固定长度容器,然后超出内容是不可见,只有当你向上或向下滑动屏幕时,视窗外看不见内容才会出现在视窗。...你可以对比用 ListView 和用 ListView.builder 渲染 1000 个列表时,体验是否有差别。...比如,我们需要列表每个 item 之间有一个分割线,就可以跟下面那样,加一个 Divider 组件。...必须参数就是 childrenDelegate , 然后传入一个 实现了 SliverChildDelegate 组件, SliverChildListDelegate 和 SliverChildBuilderDelegate

1.8K40

【Flutter 专题】12 ListView 用哪种方式绑定数据?

和尚觉得 **Flutter ** ListView 这个控件很强大,它兼顾了 Android ScrollView 和 ListView 两个控件效果,既可以当列表用也可以充当可滑动布局。...,之后绑定列表;Flutter 绑定列表有四种方式,分别是 默认 List / ListView.builder / ListView.separated / ListView.custom;和尚主要对前三种方式逐一测试...ListView.builder 和尚理解 builder 方式很像对话框类型逐个添加需要属性;需要在 builder 添加列表数据;而添加分割线方式更让和尚体会到 Flutter 一切都是...---- Tips: 列表中有一个属性很有意思:reverse 是否反转,如果设为 true,列表默认滑倒底部而且数据也是倒叙排列;若设为 false,则一切正常。...GitHub Demo ---- 和尚刚接触 Flutter 时间不长,还有很多不清楚和不理解地方,如果又不对地方还希望多多指出。

1.7K81

flutter系列之:flutterlistview高级用法

其中ListView有一个children属性,它接收一个widgetlist,这个list就是ListView要呈现对象。...幸好,ListView还提供了一个ListView.builder方法,这个方法会按需进行item创建,所以在item数目比较多情况下是非常好用。...首先,我们构建一个items list,并将其传入MyAppStatelessWidget: MyApp( items: List.generate(10000, (...i) => '列表 $i'), )然后就可以在MyAppbody中使用ListView.builder来构建item了:body: ListView.builder( itemCount...还是上面的例子,我们可以在创建items数组时候就根据i不同来生成不同item类型,也可以如下所示,在itemBuilder根据index不同来返回不同item:body: ListView.builder

1.4K20

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

希望通过本文,读者可以了解到构建文件列表基本原理和方法,以及如何在自己应用应用这些技术,提升用户体验,提高工作效率。...假设我们有一个包含文件名列表,我们可以通过ListView.builder方法来动态生成文件列表。...我们使用ListView.builder方法来动态生成文件列表,每个文件都表示为一个ListTile。文件名前面有一个文件图标,点击文件列表项时会触发一个事件。...添加网格视图按钮 首先,我们需要在文件列表页面上添加一个按钮,让用户可以选择查看文件列表不同布局方式。在我们示例,我们将在AppBar添加一个按钮来切换布局方式。...现在,我们文件列表已经可以动起来了!(GIF动不了啊)(又可以动了) 总结 在本文中,我们详细探讨了如何在Flutter应用构建文件列表,并逐步改进和优化这个文件列表,以提升用户体验和功能性。

18611

Flutter跨平台移动端开发丨SingleChildScrollView、ListView......

---- SingleChildScrollView(可滑动 View) SingleChildScrollView 类似 Android scrollview ,且同样只可包含有一个子元素...如果设置为 0.0,表示关闭预加载 children:列表项集合 semanticChildCount:提供语义信息孩子数量 item 数量固定 listview 示例 listview 构造方法参数...ListView.builder 当 listview 列表项较多或数量未知时,就需要使用 ListView.builder 来构建列表了 import 'package:flutter/material.dart...itemCount, ); key:当前元素唯一标识符(类似于 Android id) scrollDirection:滚动方向,默认是垂直 reverse:是否按照阅读方向相反方向滑动...padding:填充距离 itemCount:子元素数量 addAutomaticKeepAlives:表示是否将列表项包裹在 AutomaticKeepAlive widget

8.7K51

flutter系列之:flutterlistview高级用法

其中ListView有一个children属性,它接收一个widgetlist,这个list就是ListView要呈现对象。...幸好,ListView还提供了一个ListView.builder方法,这个方法会按需进行item创建,所以在item数目比较多情况下是非常好用。...首先,我们构建一个items list,并将其传入MyAppStatelessWidget: MyApp( items: List.generate(10000,...(i) => '列表 $i'), ) 然后就可以在MyAppbody中使用ListView.builder来构建item了: body: ListView.builder(...还是上面的例子,我们可以在创建items数组时候就根据i不同来生成不同item类型,也可以如下所示,在itemBuilder根据index不同来返回不同item: body: ListView.builder

1.3K20

Flutter 构建完整应用手册-列表

创建一个水平列表 有时,您可能想要创建一个水平滚动而不是垂直滚动列表。 ListView部件支持开箱即用水平列表。...例如,您数据源可能是消息列表,搜索结果或商店产品。 大多数情况下,这些数据将来自互联网或数据库。 在这个例子,我们将使用List.generate构造函数生成一个10000个字符串列表。...这是ListView.builder将发挥作用地方。 在我们例子,我们将在它自己行上显示每个字符串。...创建一个包含不同类型条目的列表 我们经常需要创建显示不同类型内容列表。 例如,我们可能正在制作一个列表,其中显示一个标题,后面跟着与该标题相关几个项目,后面是另一个标题,等等。...开始使用网格最简单方法是使用GridView.count构造函数,因为它允许我们指定我们想要行数或列数。 在这个例子,我们将生成一个100个部件列表,在列表显示它们索引。

2.5K20

Flutter开发-可滚动组件

addAutomaticKeepAlives:该属性表示是否将列表项(子组件)包裹在AutomaticKeepAlive 组件;典型地,在一个懒加载列表,如果将列表项包裹在AutomaticKeepAlive...当可滚动组件滚动时,将列表项包裹在RepaintBoundary可以避免列表项重绘,但是当列表项重绘开销非常小(如一个颜色块,或者一个较短文本)时,不添加RepaintBoundary反而会更高效...下面看一下ListView.builder核心参数列表ListView.builder({ // ListView公共参数已省略 ......当列表滚动到具体index位置时,会调用该构建器构建列表项。 itemCount列表数量,如果为null,则为无限列表。...下面看一个例子: ListView.builder( itemCount: 100, itemExtent: 50.0, //强制高度为50.0 itemBuilder: (BuildContext

4.5K20

三段代码打造好看流式布局,flutter之wrap【flutter20个实例之七】

一、老套路,先看样式 左起图一是我业务样式,左起图二是下方源码展示样式(复制可直接运行,无额外组件引入) ? ?...二、讲解 1.结构拆分 首先,页面是个滚动列表,所以一定需要一个listview来容纳 然后每一个item,有个标题,比如精选 标题下方是一个流式布局,可自动切换行,用到了flutterwrap组件...结构清晰后,无非就三段代码 2.首界面和数据加载 list是我们要循环列表,这个列表是一级分类数据 然后里面还有个topic字段,是二级分类列表数据 也就是说这个_list字段是二维数组感慨念...if (_list.isEmpty) { return Text('加载....'); } else { return ListView.builder(...属性表示Wrap交叉轴方向上子控件方向,取值范围是up(从上到下)和down(从下到上) 三、源码(可直接运行调试) import 'package:flutter/material.dart';

1.1K20

Flutter 刷新页面:通过下拉刷新提升用户体验

在移动端应用,为用户提供一个直观方式来更新内容是很重要。...通过调整这些属性,我们可以创建一个与应用设计语言完美匹配刷新指示器 indicator。 实现 OnRefresh 回调函数 OnRefresh 回调函数才是神奇发生地方。...RefreshIndicator 是 Scaffold body 值,它有一个 child,包裹着一个 ListView.builder。...RefreshIndicator 包裹着一个 ListView.builder,根据最新数据动态地构建列表项。...在发生错误时向用户提供清晰且信息丰富反馈至关重要。比如 SnackBar,一个警告对话框,或者列表错误挂件。旨在告知用户一个错误发生了,如果可能,我们还需要提供解决方案。

17010

ListView&GirdView

在本篇文章,我们会进一步对Flutter中常用Widget进行介绍,有印象童鞋可能还记得,在前面的文章我们分享了Row和Colunm用法,我们也使用这两个Widget完成了一些类似列表操作,...那么我们今天就来介绍下Flutter列表组件ListView和网格组件GirdView,嗯,果然是Google家亲儿子,连名字都和Android里一模一样。...好吧,我们还是来看下这两个Widget用法吧 ListView ---- ListView就是我们常见列表组件,在平时应用开发十分常见,无论你做是什么类型应用都会多多少少会用到ListView...ListView.builder()和ListView.custom()用法基本相同,只不过custom可以根据自己需要控制Item显示方式,Item显示大小。...itemCount指定item数量,一个是itemBuilder,用来构建Item。

1.7K20

Flutter | 滚动组件,ListView,GridVIew等

组件; 典型,在一个懒加载列表,如果将列表包裹在 AutomaticKeepAlive ,在改了吧划出视口时,他也不会被 GC 回收(垃圾回收),他会使用 KeepAliveNotification...ist 来作为 children 属性时,只适用于组件较少情况,这是一个通用规律,并非 ListView 自己特性,想 GridView 也是如此 ListView.builder 这种适合列表项比较多...itemCount列表数量,如果为 null ,则代表无限列表 可滚动组件构造函数如果需要一个列表项 Builder ,那么通过构造函数构建通常就是支持 Sliver 懒加载模型,反正则不支持...,直接使用一个线性组件,第一个为标题头,第二个是 listView 即可,如下: Column( children: [ Text("商品列表"), ListView.builder...( children: [ Text("商品列表"), Expanded( child: ListView.builder( itemCount: 100

8.5K20

【-Flutter 探索-】AutomaticKeepAliveClientMixin 保持 State 状态

1.前置知识 先对 ListView 组件做个测试,这是一个色块列表,其中每个 Item 是一个自定义 StatefulWidget ,名为 ColorBox ,其中状态量是 Checkbox 选择情况...保持 State 状态 你可能会发现 ListView 存在一个 addAutomaticKeepAlives 属性,但是用起来似乎没有什么效果,可能很多人都不知道它真正作用是什么,这个暂且按下不表...是不是感觉很神奇,可能一般介绍文章到这里就结束了,毕竟已经解决了问题。但可惜,这是在我 bgm 。...可以看出ListView.builder 入参 addAutomaticKeepAlives 是 传给 SliverChildBuilderDelegate 。...to preserve /// their state when they would otherwise be garbage collected off-screen. /// 通常,懒加载列表

2.1K30
领券