Flutter进度条展示插件curved_progress_bar的使用

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

Flutter进度条展示插件curved_progress_bar的使用

curved_progress_bar 是一个Flutter插件,用于创建具有圆角边缘的进度条,并且可以添加动画时间来构建进度条。

Features

  • 进度条具有圆角边缘。
  • 支持为进度条添加动画持续时间。

Getting started

在您的 pubspec.yaml 文件中添加依赖:

dependencies:
  curved_progress_bar: ^1.0.2

然后运行 flutter pub get 来获取新的依赖包。

Usage

CurvedCircularProgressIndicator

这是一个圆形的进度条,您可以设置它的值、边框宽度、动画时长、背景颜色和进度颜色。

CurvedCircularProgressIndicator(
  value: 0.5, // 进度值(范围:0.0 到 1.0)
  strokeWidth: 12, // 边框宽度
  animationDuration: const Duration(seconds: 1), // 动画持续时间
  backgroundColor: Color(0xFFFFFFCD), // 背景颜色
  color: Colors.blue, // 进度颜色
),

也可以直接使用默认参数:

const CurvedCircularProgressIndicator(),

CurvedLinearProgressIndicator

这是一个线性的进度条,同样可以设置其值、边框宽度、背景颜色和进度颜色。

CurvedLinearProgressIndicator(
  value: 0.5, // 进度值(范围:0.0 到 1.0)
  strokeWidth: 8, // 边框宽度
  backgroundColor: Colors.amber, // 背景颜色
  color: Colors.red, // 进度颜色
),

或者使用默认参数:

const CurvedLinearProgressIndicator(),

示例Demo

下面是一个完整的示例应用程序,演示了如何使用 CurvedCircularProgressIndicatorCurvedLinearProgressIndicator。通过点击浮层按钮,可以更新进度条的值。

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

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

class DemoApp extends StatefulWidget {
  const DemoApp({Key? key}) : super(key: key);

  @override
  DemoAppState createState() => DemoAppState();
}

double _value = 0.4;

class DemoAppState extends State<DemoApp> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Curved Progress Bar Example')),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: [
          Center(
            child: SizedBox(
              height: 200,
              width: 200,
              child: CurvedCircularProgressIndicator(
                value: _value,
                animationDuration: const Duration(seconds: 3),
                backgroundColor: Colors.amber,
                color: Colors.red,
                strokeWidth: 9,
              ),
            ),
          ),
          Center(
            child: SizedBox(
              height: 200,
              width: 200,
              child: CurvedLinearProgressIndicator(
                value: _value,
                strokeWidth: 8,
                backgroundColor: Colors.amber,
                color: Colors.red,
              ),
            ),
          ),
        ],
      ),
      floatingActionButton: IconButton(
        onPressed: () {
          setState(() {
            if (_value >= 1.0) {
              _value = 0;
            } else {
              _value += 0.05;
            }
          });
        },
        icon: const Icon(Icons.refresh),
      ),
    );
  }
}

Additional information

更多详细信息请参阅 GitHub项目

Author

Uttam Laila, 自2019年起成为Flutter开发者。


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

1 回复

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


当然,以下是一个关于如何在Flutter中使用curved_progress_bar插件来展示进度条的示例代码。这个插件允许你创建一个带有曲线的进度条,非常适合用于各种UI展示。

首先,你需要在你的pubspec.yaml文件中添加curved_progress_bar依赖项:

dependencies:
  flutter:
    sdk: flutter
  curved_progress_bar: ^1.0.0  # 请检查最新版本号

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

接下来是一个完整的示例代码,展示如何在Flutter中使用curved_progress_bar

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Curved Progress Bar Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin {
  double _progress = 0.0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Curved Progress Bar Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            SizedBox(
              width: double.infinity,
              height: 200.0,
              child: CurvedProgressBar(
                progress: _progress,
                width: 30.0,
                backgroundColor: Colors.grey[200]!,
                progressColor: Colors.blue,
                borderRadius: 25.0,
                height: 50.0,
                padding: 10.0,
                gradientColors: [Colors.blue, Colors.lightBlueAccent],
                animationDuration: 1500,
                animationCurve: Curves.easeInOut,
              ),
            ),
            SizedBox(height: 20.0),
            ElevatedButton(
              onPressed: () {
                setState(() {
                  _progress += 0.1;
                  if (_progress >= 1.0) {
                    _progress = 0.0;
                  }
                });
              },
              child: Text('Increase Progress'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中:

  1. CurvedProgressBar用于创建一个带有曲线的进度条。
  2. 你可以通过progress属性设置进度条的值(范围从0到1)。
  3. widthbackgroundColorprogressColorborderRadiusheightpadding等属性允许你自定义进度条的外观。
  4. gradientColors属性允许你设置进度条的渐变颜色。
  5. animationDurationanimationCurve属性控制进度条动画的时长和曲线。

通过点击按钮,进度条的值会增加0.1,并在达到1.0后重置为0.0。你可以根据需要调整这些属性来满足你的UI设计需求。

回到顶部