第三百二十二回

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 基本用法
    • 2.2 缓冲原理
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"FadeInImage组件"相关的内容,本章回中将介绍CachedNetworkImage组件.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在本章回中介绍的CachedNetworkImage组件主要用来缓冲和显示网络图片,这点从它的名字上就可以看出来,该组件可以确保图像能够快速、高效地加载,同时
又可以避免不必要的网络请求和资源浪费。该组件由cached_network_image这个三方包提供,它和官方提供的FadeInImage组件在功能上十分相似。我们本章回中
将详细介绍它的使用方法。

2. 使用方法

2.1 基本用法

和其它组件类似,CachedNetworkImage组件提供了相关的属性来控制自己,下面是该组件中常用的属性:

  • imageUrl:该属性主要用来控制被加载的网络图片,它的值是一个图片网址;
  • imageBuilder:该属性主要用来装饰被加载的图片,比如对图片进行缩放操作;
  • errorWidget:该属性主要用来控制显示的错误提示图标或者文字;
  • placeholder:该属性用来控制在加载网络图片之前显示的占位图片资源;
  • fit:该属性主要用来控制图片如何适应其父容器,这个是图片类组件中最常用的属性;
  • progressIndicatorBuilder:该属性用来显示图标加载进度,它是方法类型,进度值在方法参数中;

2.2 缓冲原理

CachedNetworkImage组件背后的缓冲原理是自己开发,它基于FlutterCacheManager组件实现。这两个组件都是一个名叫BaseFlow的组织(公司)提供。该组件的
缓冲原理:第一次运行时从网络下载图像,并将其缓存到本地。当下一次需要加载同一图像时,它会首先检查缓存中是否存在,如果存在,则直接从缓存中读取,这样就避
免了重复的网络请求和下载。我们在后面章回中将专门介绍FlutterCacheManager组件。

3. 示例代码

///装饰图片:给图片添加滤镜
CachedNetworkImage(imageUrl: "http://via.placeholder.com/200x150",imageBuilder: (context, imageProvider) => Container(decoration: BoxDecoration(image: DecorationImage(image: imageProvider,fit: BoxFit.cover,colorFilter:ColorFilter.mode(Colors.red, BlendMode.colorBurn)),),),placeholder: (context, url) => CircularProgressIndicator(),errorWidget: (context, url, error) => Icon(Icons.error),
),///显示图片加载进度
CachedNetworkImage(imageUrl: "http://via.placeholder.com/350x150",progressIndicatorBuilder: (context, url, downloadProgress) => CircularProgressIndicator(value: downloadProgress.progress),errorWidget: (context, url, error) => Icon(Icons.error),),
///和官方组件配合使用
Image(image: CachedNetworkImageProvider(url))

我们在上面的示例代码中演示了该组件的三种使用方法,大家可以参考代码中的注释。此外,上面的示例代码不是我写的,它们来自该组件的官方文档,组件中使用的网络
图片可以正常使用,我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

4. 内容总结

我们在本章回中介绍的CachedNetworkImage组件和上一章回中介绍的FadeInImage组件都可以加载和显示网络图片,它们都提供了相似的属性来实现占位符和错误处
理功能。不过CachedNetworkImage组件还提供了装饰图片的属性,以及获取图片加载进度的属性。最后,我们对本章回中的内容做一个全面的总结:

  • 我们可以使用CachedNetworkImage组件来加载和显示网络图片;
  • 我们可以使用CachedNetworkImage组件来实现占位符和错误处理功能;
  • 可以使用CachedNetworkImage组件相关的属性来装饰图片和获取图片加载进度;
  • 可以在官方的Image组件中使用CachedNetworkImage组件来显示和加载网络图片;
    看官们,与"CachedNetworkImage组件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/467318.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

渗透测试练习题解析 3(CTF web)

1、[网鼎杯 2020 朱雀组]phpweb 1 考点:反序列化漏洞利用 进入靶场,查看检查信息,发现存在两个参数 func 和 p 查看页面源代码 payload:funcfile_get_contents&pphp://filter/resourceindex.php 整理后,就是 PHP 代…

HiveSQL——连续增长问题

注:参考文章: SQL连续增长问题--HQL面试题35_sql判断一个列是否连续增长-CSDN博客文章浏览阅读2.6k次,点赞6次,收藏30次。目录0 需求分析1 数据准备3 小结0 需求分析假设我们有一张订单表shop_order shop_id,order_id,order_time…

基于Java (spring-boot)的职工管理系统

一、项目介绍 基于Java (spring-boot)的职工管理系统功能:登录、老板、职员人事经理、职员、部门列表、职工列表、权限修改、查看所有管理、正在审核列表、添加考勤、添加职工、添加奖惩、合同列表、合同信息、等等等。 适用人群:适合小白、大学生、毕业…

【Java八股面试系列】JVM-类和对象加载过程

目录 类和对象的加载过程 类的生命周期 类的加载过程 加载 验证 准备 解析 初始化 类卸载 对象的加载过程 类和对象的加载过程 什么是类加载和对象加载? 类加载(Class Loading):这是指JVM在运行时将类的字节码文件加载到内存中的…

利用pandas库进行数据分析

一.这段代码的主要目的是读取IMDB电影数据集,并进行一些基本的数据分析 # codingutf-8 import pandas as pd import numpy as np from matplotlib import pyplot as plt# 定义CSV文件的路径 file_path ./IMDB-Movie-Data.csv# 使用pandas的read_csv函数读取CSV文件…

海量数据处理商用短链接生成器平台 - 3

第三章 商用短链平台实战-账号微服务流量包设计 第1集 账号微服务和流量包数据库表索引规范讲解 简介:账号微服务和流量包数据库表索引规范讲解 索引规范 主键索引名为 pk_字段名; pk即 primary key;唯一索引名为 uk_字段名;uk 即 unique key普通索引…

力扣题目训练(9)

2024年2月2日力扣题目训练 2024年2月2日力扣题目训练412. Fizz Buzz414. 第三大的数415. 字符串相加129. 求根节点到叶节点数字之和131. 分割回文串65. 有效数字 2024年2月2日力扣题目训练 2024年2月2日第九天编程训练,今天主要是进行一些题训练,包括简…

[BJDCTF2020]ZJCTF,不过如此

伪协议读取next.php源码 preg_replace() /e代码执行漏洞_preg_replace /e-CSDN博客 查找资料我们发现,在php5.6及以下版本中,/e使得preg_replace的第二个参数可以被当作php代码执行,第二个参数中\\1指的是正则匹配到的第一组文本&#xff0c…

刘谦春晚魔术的数学原理

刘谦春晚魔术的数学原理 文章目录 前言魔术介绍魔术揭秘STEP 1STEP 2STEP 3STEP 4STEP 5STEP 6STEP 7 总结 前言 2024 春晚刘谦的第二个魔术很多人跟着一起做了,都觉得非常神奇。我也跟着操作了一遍,结果一眼就让我看出了背后的数学原理。下面给大家介…

C++ :内存管理 newdelete

目录 内存区域划分 C的动态内存的管理方式 new new的基本使用方法 【注意事项】 delete 【注意】 new和delete操作自定义类型 operator new 和 operator delete 【关于自定义类型new申请内存】 【原理】 【调用顺序】 【连续开辟空间问题】 malloc/free和…

用脑想问题还是用心驱动脑?

昨天回答了几个朋友的问题,我发现提问题的人很少,这让我想起之前讲的小妞子的故事,我问了她好几个月的同一句话:你有问题吗? 结果她很反感,嘿嘿。其实吧,我讲的很多东西都是实的,反而…

【Python】使用 requirements.txt 与 pytorch 相关配置

【Python】使用 requirements.txt 与 pytorch 相关配置 前言一、pip1、导出结果含有路径2、导出不带路径的 二、Conda1、导出requirements.txt2、导出yml 文件 三、第三方包:pipreqs(推荐)1、创建并激活conda环境2、安装requirements文件的pi…