Flutter进度条展示插件curved_progress_bar的使用
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
下面是一个完整的示例应用程序,演示了如何使用 CurvedCircularProgressIndicator
和 CurvedLinearProgressIndicator
。通过点击浮层按钮,可以更新进度条的值。
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
更多关于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'),
),
],
),
),
);
}
}
在这个示例中:
CurvedProgressBar
用于创建一个带有曲线的进度条。- 你可以通过
progress
属性设置进度条的值(范围从0到1)。 width
、backgroundColor
、progressColor
、borderRadius
、height
和padding
等属性允许你自定义进度条的外观。gradientColors
属性允许你设置进度条的渐变颜色。animationDuration
和animationCurve
属性控制进度条动画的时长和曲线。
通过点击按钮,进度条的值会增加0.1,并在达到1.0后重置为0.0。你可以根据需要调整这些属性来满足你的UI设计需求。