Skip to content

Progress 进度条

展示操作的当前进度。

何时使用

当需要展示操作的当前进度或任务完成情况时使用。

代码演示

import 'package:flutter/material.dart';
import 'package:trionesdev_antd_mobile/trionesdev_antd_mobile.dart';

import '../demo_block.dart';

class ProgressPage extends StatefulWidget {
  const ProgressPage({super.key});

  @override
  State<StatefulWidget> createState() => _ProgressPageState();
}

class _ProgressPageState extends State<ProgressPage> {
  @override
  Widget build(BuildContext context) {
    return AntScaffold(
      appBar: AntAppBar(title: Text("Progress 进度条")),
      body: SingleChildScrollView(
        child: Column(
          children: [
            DemoBlock(
              title: "进度条",
              child: Column(
                spacing: 4,
                children: [
                  AntProgress(percent: 30),
                  AntProgress(percent: 50, status: AntProgressStatus.active),
                  AntProgress(percent: 70, status: AntProgressStatus.exception),
                  AntProgress(percent: 100),
                  AntProgress(percent: 50, showInfo: false),
                ],
              ),
            ),
            DemoBlock(
              title: "进度圈",
              child: Column(
                spacing: 4,
                children: [
                  AntProgress(percent: 75, type: AntProgressType.circle),
                  AntProgress(
                    percent: 70,
                    type: AntProgressType.circle,
                    status: AntProgressStatus.exception,
                  ),
                  AntProgress(percent: 100, type: AntProgressType.circle),
                ],
              ),
            ),
            DemoBlock(
              title: "小型进度条",
              child: Column(
                spacing: 4,
                children: [
                  AntProgress(percent: 30, size: AntSize.small),
                  AntProgress(
                    percent: 50,
                    size: AntSize.small,
                    status: AntProgressStatus.active,
                  ),
                  AntProgress(
                    percent: 70,
                    size: AntSize.small,
                    status: AntProgressStatus.exception,
                  ),
                  AntProgress(percent: 100, size: AntSize.small),
                  AntProgress(percent: 50, size: AntSize.small, showInfo: false),
                ],
              ),
            ),
            DemoBlock(
              title: "自定义文字格式",
              child: Column(
                children: [
                  AntProgress(
                    percent: 75,
                    type: AntProgressType.circle,
                    format: (percent) => "$percent%",
                  ),
                  AntProgress(
                    percent: 100,
                    type: AntProgressType.circle,
                    format: (percent) => "完成",
                  ),
                ],
              ),
            ),
            DemoBlock(
              title: "改变进度值位置",
              child: Column(
                spacing: 8,
                children: [
                  AntProgress(
                    percent: 0,
                    percentPositionType: AntPercentPositionType.inner,
                    height: 20,
                  ),
                  AntProgress(
                    percent: 10,
                    percentPositionType: AntPercentPositionType.inner,
                    height: 20,
                  ),
                  AntProgress(
                    percent: 50,
                    percentPositionType: AntPercentPositionType.inner,
                    height: 20,
                    percentPositionAlign: AntPercentPositionAlign.start,
                    strokeColor: Colors.green,
                  ),
                  AntProgress(
                    percent: 60,
                    percentPositionType: AntPercentPositionType.inner,
                    height: 20,
                    percentPositionAlign: AntPercentPositionAlign.end,
                    strokeColor: Colors.black87,
                  ),
                  AntProgress(
                    percent: 100,
                    percentPositionType: AntPercentPositionType.inner,
                    height: 20,
                    percentPositionAlign: AntPercentPositionAlign.center,
                  ),
                  AntProgress(
                    percent: 60,
                    percentPositionType: AntPercentPositionType.outer,
                    percentPositionAlign: AntPercentPositionAlign.start,
                  ),
                  AntProgress(
                    percent: 100,
                    percentPositionType: AntPercentPositionType.outer,
                    percentPositionAlign: AntPercentPositionAlign.start,
                  ),
                  AntProgress(
                    percent: 60,
                    percentPositionType: AntPercentPositionType.outer,
                    percentPositionAlign: AntPercentPositionAlign.center,
                  ),
                  AntProgress(
                    percent: 100,
                    percentPositionType: AntPercentPositionType.outer,
                    percentPositionAlign: AntPercentPositionAlign.center,
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

API

AntProgress

进度条的属性说明如下:

属性说明类型默认值
format格式化进度百分比Format?(percent) => percent + %
type进度条类型AntProgressTypeline
percent进度百分比double0
railColor未完成的分段的颜色Color?null
showInfo是否显示进度数值或状态图标booltrue
status进度条的状态AntProgressStatus?null
strokeColor进度条的色彩Color?null
size进度条的大小AntSizemiddle
height进度条的高度,只对type="line"有效,将覆盖size效果double?null
diameter进度条的直径,只对type="circle"有效,将覆盖size效果double?null
percentPositionAlign进度百分比的位置对齐方式,只对type="line"有效AntPercentPositionAlignend
percentPositionType进度百分比的位置类型,只对type="line"有效AntPercentPositionTypeouter
strokeWidth进度条的宽度,只对type="circle"有效double6

AntProgressType 枚举值

说明
line线性进度条
circle环形进度条

AntProgressStatus 枚举值

说明
success成功状态
exception异常状态
normal普通状态
active活跃状态

AntPercentPositionAlign 枚举值

说明
start开始位置
center居中位置
end结束位置

AntPercentPositionType 枚举值

说明
inner内部显示
outer外部显示

AntSize 枚举值

说明尺寸
small小尺寸高6px(线性)或直径60px(环形)
middle中尺寸高8px(线性)或直径120px(环形)
large大尺寸高12px(线性)或直径160px(环形)