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

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

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

shiny_striped_progress_bar 是一个开源的 Flutter 包,提供了带有条纹和闪耀效果的动画进度条。以下是该插件的详细使用指南。

特性

  • 进度变化时平滑的动画。
  • 可自定义颜色和角度的条纹设计。
  • 可配置的闪耀效果以增强视觉吸引力。
  • 完全可定制的高度、颜色、圆角半径等属性。
  • 响应动态变化的 targetProgress 并带有动画效果。

开始使用

安装

在你的 pubspec.yaml 文件中添加以下内容:

dependencies:
  flutter:
    sdk: flutter
  shiny_striped_progress_bar: ^1.1.0

然后在 Dart 代码中导入包:

import 'package:shiny_striped_progress_bar/shiny_striped_progress_bar.dart';

基本示例

自定义颜色

设置进度条的颜色、背景色和条纹颜色:

ShinyStripedProgressBar(
  targetProgress: 0.7,
  backgroundColor: Colors.grey.shade300,
  progressColor: Colors.blue,
  stripeColor: Colors.white,
);

自定义条纹角度

调整条纹的角度来创建独特的设计。可以选择三个预定义的角度:45°, 90° 和 135°。

ShinyStripedProgressBar(
  targetProgress: 0.6,
  stripeAngle: StripeAngle.angle30,
  stripeColor: Colors.orange,
);

闪耀效果

闪耀效果会在进度条上动态移动:

ShinyStripedProgressBar(
  targetProgress: 0.5,
  stripeColor: Colors.cyan,
);

圆角半径

调整圆角半径来创建圆角进度条:

ShinyStripedProgressBar(
  targetProgress: 0.9,
  borderRadius: BorderRadius.circular(10),
);

参数描述

参数 类型 默认值 描述
targetProgress double 必需 进度级别,范围是 0.0 到 1.0。
duration Duration Duration(milliseconds: 1000) 动画持续时间。
height double 40 进度条的高度。
backgroundColor Color Colors.grey.shade300 进度条的背景颜色。
progressColor Color Colors.blue 进度条的颜色。
stripeColor Color Colors.white 条纹的颜色。
stripeAngle StripeAngle StripeAngle.angle45 条纹的角度。
enableShineEffect bool true 是否启用闪耀效果。
borderRadius BorderRadius BorderRadius.circular(5) 进度条四个角的圆角半径。

示例 Demo

以下是一个完整的示例 demo,展示了如何使用 shiny_striped_progress_bar 包:

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Shiny Striped Progress Bar Example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.greenAccent),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Shiny Striped Progress Bar Example'),
    );
  }
}

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

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  double _progress = 0.2;

  void _increaseProgress() {
    setState(() {
      _progress += 0.2;
      if (_progress > 1.0) _progress = 0.0;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ShinyStripedProgressBar(
              targetProgress: _progress,
              backgroundColor: Colors.grey.shade300,
              progressColor: Colors.blue,
              stripeColor: Colors.white,
              stripeAngle: StripeAngle.angle45,
              enableShineEffect: true,
              borderRadius: BorderRadius.circular(10),
            ),
            const SizedBox(height: 20),
            ElevatedButton(
              onPressed: _increaseProgress,
              child: const Text('Increase Progress'),
            ),
          ],
        ),
      ),
    );
  }
}

这个示例演示了如何创建一个带有自定义颜色、条纹角度、闪耀效果和圆角半径的进度条,并且可以通过按钮动态改变进度。希望这对你有所帮助!


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

1 回复

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


当然,下面是一个关于如何在Flutter应用中使用shiny_striped_progress_bar插件来展示进度条的代码示例。这个插件允许你创建一个带有闪亮条纹效果的进度条。

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

dependencies:
  flutter:
    sdk: flutter
  shiny_striped_progress_bar: ^最新版本号  # 请将“最新版本号”替换为实际的最新版本号

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

接下来是一个完整的Flutter应用示例,展示如何使用shiny_striped_progress_bar

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

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

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

class ProgressBarScreen extends StatefulWidget {
  @override
  _ProgressBarScreenState createState() => _ProgressBarScreenState();
}

class _ProgressBarScreenState extends State<ProgressBarScreen> with SingleTickerProviderStateMixin {
  double _progress = 0.0;

  @override
  void initState() {
    super.initState();
    _startProgress();
  }

  void _startProgress() {
    // 模拟进度增加
    Timer.periodic(Duration(milliseconds: 100), (timer) {
      setState(() {
        _progress += 0.01;
        if (_progress >= 1.0) {
          timer.cancel();
        }
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Shiny Striped Progress Bar'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ShinyStripedProgressBar(
              progress: _progress,
              barBackgroundColor: Colors.grey[200]!,
              barStripeColor: Colors.blue,
              height: 30,
              width: double.infinity,
              borderRadius: 25,
            ),
            SizedBox(height: 20),
            Text('Progress: ${(_progress * 100).toInt()}%'),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个ProgressBarScreen页面。这个页面展示了一个使用ShinyStripedProgressBar的进度条,并且每秒增加1%的进度,直到达到100%。

代码解释

  1. 依赖导入

    • package:flutter/material.dart:Flutter的Material Design组件库。
    • package:shiny_striped_progress_bar/shiny_striped_progress_bar.dartshiny_striped_progress_bar插件。
  2. MyApp

    • MaterialApp:定义应用的主题和首页。
  3. ProgressBarScreen

    • StatefulWidget:一个状态管理组件,用于管理进度条的状态。
    • _startProgress方法:使用Timer.periodic每秒更新一次进度。
  4. ShinyStripedProgressBar

    • progress:进度值,范围从0到1。
    • barBackgroundColor:进度条的背景颜色。
    • barStripeColor:进度条的条纹颜色。
    • height:进度条的高度。
    • width:进度条的宽度。
    • borderRadius:进度条的圆角半径。

运行这个代码后,你会看到一个带有闪亮条纹效果的进度条,并且它会随着时间逐渐填满。你可以根据需求调整进度条的颜色、高度、宽度等属性。

回到顶部