Flutter圆形进度条插件circular_progress_bar的使用
Flutter圆形进度条插件circular_progress_bar的使用
在本教程中,我们将展示如何使用circular_progress_bar
插件来创建一个圆形进度条。此插件可以轻松地添加到您的Flutter项目中,并且可以通过配置不同的属性来自定义进度条的外观和行为。
插件属性说明
下表列出了circular_progress_bar
插件的主要属性及其描述:
属性名称 | 描述 | 是否必需 | 默认值 |
---|---|---|---|
width | 圆形进度条宽度 | 是 | NAN |
height | 圆形进度条高度 | 是 | NAN |
textStyle | 百分比文本样式 | 否 | 常量 TextStyle(color: Colors.black, fontSize: 26, fontWeight: FontWeight.bold) |
percentageVisibility | 百分比文本可见性 | 否 | 是 |
duration | 动画运行时长 | 否 | 常量 Duration(milliseconds: 700) |
strokeCap | 完成进度的线帽样式 | 否 | StrokeCap.round |
curve | 动画曲线 | 否 | Curves.linear |
radius | 圆形进度条半径 | 是 | NAN |
percentage | 圆形进度条百分比 | 是 | NAN |
color | 完成进度的颜色 | 是 | NAN |
percentagePrefix | 百分比文本前缀 | 否 | (String)’’ |
percentageSuffix | 百分比文本后缀 | 否 | (String)’’ |
hasDecimalPoint | 百分比文本是否有小数点 | 否 | 是 |
示例代码
以下是一个完整的示例代码,展示了如何使用circular_progress_bar
插件创建一个圆形进度条,并通过点击按钮生成随机数更新进度条的百分比。
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:circular_progress_bar/circular_progress_bar.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
@override
void initState() {
super.initState();
}
// 定义进度百分比变量
double _percentage = 0;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
// 创建圆形进度条
CircularProgressBar(
textStyle: const TextStyle(
fontWeight: FontWeight.bold,
color: Colors.blue,
fontSize: 14),
width: 1000,
height: 300,
duration: const Duration(milliseconds: 1000),
curve: Curves.elasticInOut,
radius: 100,
percentage: _percentage,
color: Colors.amber,
percentagePrefix: "PREFIX",
percentageSuffix: "SUFFIX ",
hasDecimalPoint: true,
),
// 创建一个按钮用于生成随机数并更新进度条
TextButton(
onPressed: () {
Random random = Random();
var randomNumber = random.nextInt(100);
setState(() {
_percentage = randomNumber.toDouble();
});
},
child: const Text('生成随机数 0 ~ 100')),
],
),
),
);
}
}
代码解释
-
导入必要的包:
import 'dart:math'; import 'package:flutter/material.dart'; import 'package:circular_progress_bar/circular_progress_bar.dart';
-
定义主应用类:
class MyApp extends StatefulWidget { const MyApp({Key? key}) : super(key: key); @override State<MyApp> createState() => _MyAppState(); }
-
定义状态类:
class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { double _percentage = 0; @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ CircularProgressBar( textStyle: const TextStyle( fontWeight: FontWeight.bold, color: Colors.blue, fontSize: 14), width: 1000, height: 300, duration: const Duration(milliseconds: 1000), curve: Curves.elasticInOut, radius: 100, percentage: _percentage, color: Colors.amber, percentagePrefix: "PREFIX", percentageSuffix: "SUFFIX ", hasDecimalPoint: true, ), TextButton( onPressed: () { Random random = Random(); var randomNumber = random.nextInt(100); setState(() { _percentage = randomNumber.toDouble(); }); }, child: const Text('生成随机数 0 ~ 100')), ], ), ), ); } }
更多关于Flutter圆形进度条插件circular_progress_bar的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter圆形进度条插件circular_progress_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用circular_progress_bar
插件的一个简单示例。这个插件可以帮助你轻松地在应用中实现一个圆形的进度条。
首先,确保你已经在pubspec.yaml
文件中添加了circular_progress_bar
依赖:
dependencies:
flutter:
sdk: flutter
circular_progress_bar: ^1.0.0 # 请检查最新版本号并替换
然后,运行flutter pub get
来安装依赖。
接下来,在你的Dart文件中,你可以使用CircularProgressBar
来创建一个圆形进度条。以下是一个完整的示例代码:
import 'package:flutter/material.dart';
import 'package:circular_progress_bar/circular_progress_bar.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Circular Progress Bar Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Circular Progress Bar Demo'),
),
body: Center(
child: CircularProgressBar(
progress: 0.75, // 设置进度值,范围从0到1
backgroundColor: Colors.grey[200]!,
progressColor: Colors.blue,
width: 20.0,
borderColor: Colors.blueAccent,
borderWidth: 3.0,
radius: 100.0,
animationDuration: Duration(milliseconds: 800),
child: Container(
alignment: Alignment.center,
child: Text(
'75%',
style: TextStyle(
fontSize: 24,
color: Colors.white,
),
),
),
),
),
),
);
}
}
在这个示例中:
CircularProgressBar
的progress
属性用于设置进度值,范围从0到1。在这个例子中,我们将其设置为0.75,表示75%的进度。backgroundColor
属性用于设置进度条背景的颜色。progressColor
属性用于设置进度条已填充部分的颜色。width
属性用于设置进度条的宽度。borderColor
和borderWidth
属性用于设置进度条边框的颜色和宽度。radius
属性用于设置进度条的半径。animationDuration
属性用于设置进度条动画的持续时间。child
属性允许你在进度条的中心放置一个子组件,例如一个显示当前进度的文本标签。
你可以根据需要调整这些属性来满足你的设计需求。希望这个示例对你有所帮助!