今天要聊的内容是
Flutter 进度控件: ProgressIndicator
和 刷新控件 RefreshIndicator
首先 我们看下类的结构吧
![](https://img.haomeiwen.com/i2742735/5c52a6171741f625.jpg)
可见,进度控件的结构很简单,仅仅两个分支而已,那么我们先来介绍外层的这两个
LinearProgressIndicator
结构见图
![](https://img.haomeiwen.com/i2742735/8c59368facfa4b5d.jpg)
很简单,需要提一下的是
value
:
- 他是设置
当前进度
的值,如果设置了,进度就停在设置的位置了,取值范围是0-1,1表示进度已经走完; - 如果没有设置这个
value
,那么这个进度控件上的进度条会一直往返刷新
下面再来看下CircleProgressIndicator
CircleProgressIndicator
![]()
基本同LinearProgressIndicator
类似,不同的是形状,这个是环形
我们来看下二者的示例~
首先定义背景颜色、进度颜色、创建两个进度控件
![](https://img.haomeiwen.com/i2742735/dbaa22756c60a5a2.jpg)
然后将两个控件排列在一起,展示在视图上
![](https://img.haomeiwen.com/i2742735/8e73a9e12ffb5217.jpg)
来看一下效果
![](https://img.haomeiwen.com/i2742735/783cad24f345d155.gif)
下面加上value值
![](https://img.haomeiwen.com/i2742735/fd6dee75584a1e0d.jpg)
看下效果
![](https://img.haomeiwen.com/i2742735/98168a7da03a67f5.png)
好,两个简单的进度条咱们就看完了,下面,我们使用RefreshIndicator
实现下拉刷新数据
RefreshIndicator
这个控件很像 Android 中的SwipeRefreshLayout
他可以嵌套 ListView 或者其他的控件,完成下拉刷新的效果。
我们先来看下效果图
![](https://img.haomeiwen.com/i2742735/e738495ac23232a8.gif)
好,我们开始看看逻辑
一、看下
RefreshIndicator
的结构
![](https://img.haomeiwen.com/i2742735/86951ede1badd4ac.jpg)
其中 最为重要的是 onRefresh
属性
这个属性需要
![](https://img.haomeiwen.com/i2742735/cc1cd8d32b3d0ff7.jpg)
设置一个返回值为 Future
类型的方法,即表示当刷新时 要处理的逻辑
二、定义
onRefresh
属性 需要的方法
![](https://img.haomeiwen.com/i2742735/3757ce4fc1f2d91f.jpg)
这里,我们使用了
Future.delayed(时间,处理逻辑);
来得到一个 Future
除了此方法,还可以使用
![](https://img.haomeiwen.com/i2742735/06d0ed7afc9867ef.png)
这些方法去返回
Future
需要注意还有 setState(){}函数,我们可以在可变的widget中可以使用 setstate(){} 函数,这个是 Flutter 系统定义好的,并不是我们自己创建的方法
三、返回视图
![](https://img.haomeiwen.com/i2742735/c766a19bcc99e2a4.jpg)
这样,即可实现上方效果图功能。
总结知识点
LinearProgressIndicator
CircularProgressIndicator
RefreshIndicator
onRefresh属性
setState方法
得到 Future 返回值的方法
Bingo,谢谢大家的关注~~
网友评论