Flutter自定义线性进度条插件custom_linear_progress_indicator的使用

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

Flutter自定义线性进度条插件custom_linear_progress_indicator的使用

插件介绍

custom_linear_progress_indicator 是一个为Flutter应用程序提供的可定制线性进度指示器插件,提供了动画和视觉定制选项。

特性

  • 动画:支持多种动画效果。
  • 视觉定制:允许调整进度条的颜色、边框样式、背景颜色等。

示例代码

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

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

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

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  DateTime selectedData = DateTime.now();
  late double progressPercent = 3;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Container(
        width: double.infinity,
        padding: const EdgeInsets.all(1),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 自定义线性进度指示器
            CustomLinearProgressIndicator(
              maxValue: 3, // 最大值
              value: progressPercent, // 当前进度
              minHeight: 50, // 最小高度
              borderWidth: 4, // 边界宽度
              borderColor: Colors.yellow.shade900, // 边界颜色
              borderStyle: BorderStyle.solid, // 边界样式
              colorLinearProgress: Colors.yellow, // 进度条颜色
              animationDuration: 1000, // 动画持续时间
              borderRadius: 20, // 圆角半径
              linearProgressBarBorderRadius: 15, // 线性进度条圆角半径
              backgroundColor: Colors.green.shade50, // 背景颜色
              progressAnimationCurve: Curves.ease, // 动画曲线
              alignment: Alignment.center, // 对齐方式
              showPercent: true, // 是否显示百分比
              percentTextStyle: const TextStyle(fontWeight: FontWeight.bold), // 百分比字体样式
              gradientColors: const [Colors.purple, Colors.blue, Colors.blueAccent], // 渐变颜色
              onProgressChanged: (double value) {
                // 进度变化回调
                log('Progress: $value');
              },
            ),
            const SizedBox(height: 30),
            TextButton(
              onPressed: () {
                setState(() {
                  progressPercent += 0.5;
                });

                log(progressPercent.toString());
              },
              child: const Text('Change Progress'),
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter中使用自定义线性进度条插件 custom_linear_progress_indicator 的代码示例。

首先,确保你已经在你的 pubspec.yaml 文件中添加了该插件的依赖项:

dependencies:
  flutter:
    sdk: flutter
  custom_linear_progress_indicator: ^最新版本号  # 请替换为实际的最新版本号

然后运行 flutter pub get 来获取依赖项。

接下来,你可以在你的 Dart 文件中使用 CustomLinearProgressIndicator。以下是一个完整的示例,展示了如何使用该插件来创建一个自定义的线性进度条:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Custom Linear Progress Indicator 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
  void initState() {
    super.initState();
    // 模拟进度增加,每秒增加10%
    _startProgress();
  }

  void _startProgress() {
    Timer.periodic(Duration(seconds: 1), (Timer timer) {
      setState(() {
        if (_progress < 1.0) {
          _progress += 0.1;
        } else {
          timer.cancel();
        }
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Custom Linear Progress Indicator Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Progress: ${(_progress * 100).toInt()}%',
              style: TextStyle(fontSize: 24),
            ),
            SizedBox(height: 20),
            CustomLinearProgressIndicator(
              progress: _progress,
              height: 20,
              backgroundColor: Colors.grey[300]!,
              progressColor: Colors.blue,
              borderColor: Colors.blueAccent,
              borderWidth: 2.0,
              borderRadius: 25.0,
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中:

  1. 我们创建了一个简单的 Flutter 应用,包含一个 MyApp 和一个 MyHomePage
  2. MyHomePage 是一个 StatefulWidget,它维护了一个 _progress 状态变量,表示进度条的当前进度。
  3. initState 方法中,我们使用 Timer.periodic 来每秒更新一次进度。
  4. CustomLinearProgressIndicator 组件用于显示进度条,其中:
    • progress 表示当前的进度值(0.0 到 1.0)。
    • height 表示进度条的高度。
    • backgroundColor 表示进度条的背景颜色。
    • progressColor 表示进度条的填充颜色。
    • borderColor 表示进度条的边框颜色。
    • borderWidth 表示进度条的边框宽度。
    • borderRadius 表示进度条的圆角半径。

这个示例展示了如何使用 custom_linear_progress_indicator 插件来创建一个简单的自定义线性进度条,并根据需要更新其进度。你可以根据需要进一步自定义和扩展该插件的功能。

回到顶部