题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。

** 你可能需要
CSDN 网易云课堂教程
掘金 EDU学院教程
知乎 Flutter系列文章

在使用ListView懒加载模式时,当ListView的Item中有图片信息时,在快速滚动过程中会大量的浪费流量与内存,甚至会造成在滚动过程中页面的卡顿效果。
在这里提出优化方案,当开始滚动时不加载图片,滚动结束后再加载图片,这个优化方案实现的效果如下图所示,在快速滑动列表数据时,图片未加载,运行内存无明显波动。

实现代码如下:

class ListViewUsePage13 extends StatefulWidget {@overrideState<StatefulWidget> createState() {return ScrollHomePageState();}
}class ScrollHomePageState extends State {///加载图片的标识bool isLoadingImage = true;///网络图片地址String netImageUrl ="https://images.gitee.com/uploads/images/2020/0602/203000_9fa3ddaa_568055.png";@overrideWidget build(BuildContext context) {return Scaffold(appBar: new AppBar(title: Text("详情"),),///列表body: NotificationListener(///子Widget中的滚动组件滑动时就会分发滚动通知child: buildListView(),///每当有滑动通知时就会回调此方法onNotification: notificationFunction,),);}bool notificationFunction(Notification notification) {///通知类型switch (notification.runtimeType) {case ScrollStartNotification:print("开始滚动");///在这里更新标识 刷新页面 不加载图片isLoadingImage = false;break;case ScrollUpdateNotification:print("正在滚动");break;case ScrollEndNotification:print("滚动停止");///在这里更新标识 刷新页面 加载图片setState(() {isLoadingImage = true;});break;case OverscrollNotification:print("滚动到边界");break;}return true;}ListView buildListView() {return ListView.separated(itemCount: 10000, //子条目个数///构建每个条目itemBuilder: (BuildContext context, int index) {if (isLoadingImage) {///这时将子条目单独封装在了一个StatefulWidget中return Image.network(netImageUrl,width: 100,height: 100,fit: BoxFit.fitHeight,);} else {return Container(height: 100,width: 100,child: Text("加载中..."),); //占位}},///构建每个子Item之间的间隔WidgetseparatorBuilder: (BuildContext context, int index) {return new Divider();},);}
}

*** 完结

Flutter中ListView加载图片数据的优化相关推荐

  1. Gatsby中怎么加载图片?

    一.Gatsby页面怎么加载图片? 在编写网站页面时,总是会遇到有图片要显示,那么怎么加载这些图片呢? 1.Gatsby 中图片有三种形式: 本地图片,譬如 : src/images 目录下的图片: ...

  2. python requests 动态加载_Python获取网页中动态加载的数据

    Python获取网页中动态加载的数据 0.XHR 是什么? XHR是 XMLHttpRequest 对象.既Ajax功能实现所依赖的对象,在JQuery中的Ajax是对 XHR的封装. 1.查看异步加 ...

  3. jquery动态加载图片数据

    这几天研究jquery,感受到了该库的强大,而且找到本不错的书   <<锋利的jquery>> 这里我只是随便做了下,上面是照片列表和两个按钮,单击小图片下面显示大图片,当点击 ...

  4. ListView加载图片错位的问题,解决很简单

    能看到这片文章,相信你遇到了ListView获取RecycView加载数据,产生了错乱的情况, 最近项目遇到,需要动态根据服务器返回的图片链接,动态生成图片,并显示的问题, 结果就出现了图片错兰的问题 ...

  5. Android Widget 中ListView加载网络图片

    为什么80%的码农都做不了架构师?>>>    关于Widget的介绍和用法可以看这两篇博文,写的非常详细了 Android 之窗口小部件详解--App Widget http:// ...

  6. unity3d如何获知场景中需要加载的数据_游戏中遮挡剔除方案总结

    这是侑虎科技第507篇文章,感谢作者FrankZhou供稿.欢迎转发分享,未经作者授权请勿转载.如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨.(QQ群:793972859) 作者主页:htt ...

  7. Unity两中方式加载图片

    看到草羊发的图片,也是真懒. 想起来当时写天气预报现在都忘干净了,好记性不如烂笔头,还是应该多记.自己打下来好了 using System; using System.Collections; usi ...

  8. android bitmap显示图片,Android_07 Android中Bitmap加载图片

    一:计算机表示图形的几种方式 二:Android加载大图片 原理: [1]获取手机分辨率 [2]获取图片分辨率 创建位图工厂的配置参数 获取图片宽高 [3]计算缩放比例 [4]显示缩放后的图片 示例代 ...

  9. nginx加载图片慢_优化vue项目的首屏加载速度

    最近使用vue-cli3构建了一个小型的博客系统,完工之后,build打包出来发现一个chunk-vendors包就有1.1m,部署上去之后,访问的时候,首屏加载非常慢.居然需要21s,体验极差. 这 ...

最新文章

  1. java.awt.action 命令模式_java设计模式之命令模式
  2. Redhat 停止sendmail的方法
  3. 深度学习-机器学习(5.2支持向量机SVM上的Python应用)
  4. C# NHtmlFilter 帮你过滤Html危险脚本 防止XSS攻击
  5. 主成分分析原理解释(能力工场小马哥)
  6. java虚拟机类加载机制浅谈_浅谈Java虚拟机(三)之类加载机制
  7. 牛客题霸 [平衡二叉树] C++题解/答案
  8. 再谈二叉树(二叉树概念,二叉树的性质,二叉树的存储结构)
  9. 2020年产品经理生存报告
  10. DataGrid中的超级链接列使用注意点
  11. Session何时创建实例
  12. MTV和MVC的区别
  13. Unity学习笔记——博客中有游戏练习案例
  14. ndoutils(ndo2db)安装难点
  15. 张氏矢量化骨骼化细化算法
  16. 计算机相关审稿周期短的ei,2018审核时间短容易中的EI期刊
  17. 北风设计模式课程---里氏代换原则
  18. 使用WGCLOUD来统计用户日活周活月活
  19. 【GANs】Deep Convolution Generative Adversarial Network
  20. Java 变态面试题

热门文章

  1. 谷歌 Pixel 4 人像模式拍照算法揭秘
  2. OpenCV 4.0 rc版本发布,扩展计算图Graph API
  3. 小伙C++代码实现短信表白,软萌甜炸,送给你最喜欢的人!你值得拥有
  4. CVPR2005【行人检测】HOG+SVM用于人体检测的梯度方向直方图
  5. 带你自学Python系列(三):列表遍历(for循环)
  6. pytorch实战案例-手写数字分类-全链接模型——深度AI科普团队
  7. 一文初探Tensorflow高级API使用(初学者篇)
  8. python文件备份_基于 Python 的文件备份
  9. matlab 线性规划_从零开始的matlab学习笔记——(37)线性规划——后传
  10. fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached