第二十回: 进度条Widget


我们在上一章回中介绍了浮动按钮相关的内容,,本章回中将介绍进 度条相关的Widget,闲话休提,让我们一起Talk Flutter吧。

概念介绍

进度条是常用的组件之一,它主要用来显示某种动作的完成进度。Flutter提供了多种进度条组件,常用的是水平进度条:LinearProgressIndicator;圆形进度条:CircularProgressIndicatorRefreshProgressIndicator。接下来我们分析介绍它们的用法。

使用方法

和其它的Widget一样,进度条提供了相关的属性来控制自己,下面是常用的属性:

  • backgroundColor属性用来控制进度条背景颜色,就是进度条中全部进度的颜色;
  • valueColor属性用来控制进度条中当前进度的颜色;
  • value属性用来控制当前的进度值,取值范围为0-1之间的小数;

我们刚才说的三种进度条:LinearProgressIndicator, CircularProgressIndicatorRefreshProgressIndicator都包含这三种属性,这三种Widget只是显示进度的形状不同,在使用方法上完全相同。

示例代码

class _ExProgressWidgetState extends State<ExProgressWidget> {
  
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text("Example of Progress indicator"),
          backgroundColor: Colors.purpleAccent,
        ),
        body: Container(
          width: 500,
          height: 700,
          alignment: Alignment.center,
          // child: const LinearProgressIndicator(
          //   backgroundColor: Colors.blue,
          //   valueColor: AlwaysStoppedAnimation(Colors.purpleAccent),
          //   value: 0.5,
          // ),
          // child: const CircularProgressIndicator(
          //   strokeWidth: 9,
          //   backgroundColor: Colors.blue,
          //   valueColor: AlwaysStoppedAnimation(Colors.yellow),
          //   value: 0.3,
          // ),
          child: const RefreshProgressIndicator(
            backgroundColor: Colors.blue,
            valueColor: AlwaysStoppedAnimation(Colors.yellow),
            // value: 1.0,
          )
        )
    );
  }
}

在上面的代码中我们分别使用了刚才介绍的三种进度条,它们的使用方法完成相同,只是形状不同,详细如下:

  • LinearProgressIndicator表示一个水平的进度条,当前进度是50%,显示为紫色,所有进度是100%,显示为蓝色;
  • CircularProgressIndicator表示一个圆形的进度条,当前进度是30%,显示为黄色,所有进度是100%,显示为蓝色;
  • RefreshProgressIndicator表示圆形进度条,不过它是在一个圆形背景上显示圆形的箭头,箭头的长度表示进度,显示为白色,整个背景显示为蓝色;

这里只是文字性的描述,大家可以自己动手编译程序,这样可以看到真实的运行效果。我在这里就不演示程序运行效果了,不过有些注意点还是需要做一些说明:

  • 当前进度的颜色属性值是一个动画对象:AlwaysStoppedAnimation(),不是颜色对象,我们在后面介绍动画时再详细介绍。
  • 当前进度值是0-1之间的小数,用来表示当前的进度,我们可以动态地修改该属性值,进而实现进度不断变化的效果。如果没有给该属性赋值,那么它会一起不停地显示进度变化过程。

看官们,关于进度条Widget相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值