Flutter自定义圆形进度条插件custom_circular_progress的使用

发布于 1周前 作者 zlyuanteng 来自 Flutter

Flutter自定义圆形进度条插件custom_circular_progress的使用

欢迎来到Custom Circular Progress Indicator项目!这个Flutter项目提供了一个具有动画和色彩效果的可定制圆形进度指示器。

目录

介绍

Custom Circular Progress Indicator是一个Flutter包,它提供了具有多种定制选项的圆形进度指示器,包括动画、颜色过渡等。

特性

  • 创建带有自定义设置的圆形进度指示器。
  • 可调整速度和缓动曲线的圆形进度动画。
  • 动态着色进度单元。
  • 简单直接的使用方式。

开始使用

要将Custom Circular Progress Indicator集成到你的Flutter项目中,请按照以下步骤操作:

  1. pubspec.yaml文件中添加包:
    dependencies:
      custom_circular_progress: ^latest_version
    
  2. 运行以下命令安装依赖项:
    flutter pub get
    

使用方法

导入包并在你的小部件构建方法中使用CustomCircularProgress小部件来创建自定义圆形进度指示器:

import 'package:custom_circular_progress/custom_circular_progress.dart';

// 在你的小部件构建方法中
CustomCircularProgress(
  details: IndicatorDetails(value: 0.2, itemCount: 10),
  color: Colors.blue,
  // 添加更多自定义设置
)

完整示例代码

下面是一个完整的示例,展示如何在Flutter应用中使用custom_circular_progress插件,并允许用户通过UI动态调整各种参数。

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

void main() {
  runApp(const MyApp());
}

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  Object _key = Object();

  double value = 0.5;
  int itemCount = 10;
  final TextEditingController _colorController = TextEditingController(text: '0xFFF44336');
  final TextEditingController _altColorController = TextEditingController(text: '0xFF000000');
  final TextEditingController _bgColorController = TextEditingController(text: '0xFF020424');
  double height = 20;
  double width = 20;
  double radius = 50;
  double unitBorderRadius = 0;
  Curve curve = Curves.easeOut;
  bool stopController = false;
  bool stopColorController = false;
  int animationSeconds = 4;
  int colorSeconds = 3;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: SizedBox(
          height: 1200,
          width: 720,
          child: SingleChildScrollView(
            child: Column(
              children: [
                const SizedBox(height: 30),
                CustomCircularProgress(
                  key: ValueKey<Object>(_key),
                  details: IndicatorDetails(value: value, itemCount: itemCount),
                  color: Color(int.parse(_colorController.text)),
                  alternativeColor: Color(int.parse(_altColorController.text)),
                  backgroundColor: Color(int.parse(_bgColorController.text)),
                  unitSize: Size(width, height),
                  radius: radius,
                  unitBorderRadius: BorderRadius.circular(unitBorderRadius),
                  animationDuration: Duration(seconds: animationSeconds),
                  colorDuration: Duration(seconds: colorSeconds),
                  curve: curve,
                  stopController: stopController,
                  stopColorController: stopColorController,
                ),
                const SizedBox(height: 30),
                MaterialButton(
                  onPressed: () {
                    stopController = !stopController;
                    _key = Object();
                    setState(() {});
                  },
                  child: Text(stopController ? 'Start Animation' : 'Stop Animation'),
                ),
                MaterialButton(
                  onPressed: () {
                    stopColorController = !stopColorController;
                    _key = Object();
                    setState(() {});
                  },
                  child: Text(stopColorController ? 'Start Color Animation' : 'Stop Color Animation'),
                ),
                // 更多控件以供动态调整参数...
              ],
            ),
          ),
        ),
      ),
    );
  }
}

贡献

欢迎贡献!如果你发现任何问题或想要增强包的功能,请随时创建拉取请求

许可证

该项目根据MIT许可证发布。

作者

Dilip Yadav, 可以通过LinkedIn与我联系。


更多关于Flutter自定义圆形进度条插件custom_circular_progress的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自定义圆形进度条插件custom_circular_progress的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,我可以为你提供一个关于如何在Flutter项目中使用custom_circular_progress插件的示例代码。首先,你需要确保已经在pubspec.yaml文件中添加了该依赖项:

dependencies:
  flutter:
    sdk: flutter
  custom_circular_progress: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

下面是一个简单的示例,展示如何使用custom_circular_progress插件来创建一个自定义的圆形进度条:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Custom Circular Progress Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Custom Circular Progress Demo'),
        ),
        body: Center(
          child: CustomCircularProgressIndicator(
            radius: 100.0,
            lineWidth: 10.0,
            percent: 0.75,  // 进度值,0.0到1.0之间
            backgroundColor: Colors.grey[200]!,
            progressColor: Colors.blue,
            center: Text(
              '75%',
              style: TextStyle(fontSize: 24, color: Colors.white),
            ),
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个Flutter应用,并在其主屏幕(home)上放置了一个自定义的圆形进度条。

解释

  1. 依赖导入

    import 'package:custom_circular_progress/custom_circular_progress.dart';
    
  2. CustomCircularProgressIndicator组件

    • radius:圆形进度条的半径。
    • lineWidth:进度条的线条宽度。
    • percent:进度值,范围从0.0到1.0。在这个例子中,我们设置为0.75,表示75%的进度。
    • backgroundColor:背景圆环的颜色。
    • progressColor:已完成进度条的颜色。
    • center:进度条中心的文本或图标,这里我们放置了一个显示当前进度的文本。

你可以根据需要调整这些参数,以实现不同的视觉效果。如果你需要更高级的功能,比如动画效果,你可能需要查看custom_circular_progress插件的文档或源码,了解它是否支持这些功能,并据此进行扩展。

回到顶部