Flutter自定义线性进度条插件custom_linear_progress_indicator的使用
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,
),
],
),
),
);
}
}
在这个示例中:
- 我们创建了一个简单的 Flutter 应用,包含一个
MyApp
和一个MyHomePage
。 MyHomePage
是一个StatefulWidget
,它维护了一个_progress
状态变量,表示进度条的当前进度。- 在
initState
方法中,我们使用Timer.periodic
来每秒更新一次进度。 CustomLinearProgressIndicator
组件用于显示进度条,其中:progress
表示当前的进度值(0.0 到 1.0)。height
表示进度条的高度。backgroundColor
表示进度条的背景颜色。progressColor
表示进度条的填充颜色。borderColor
表示进度条的边框颜色。borderWidth
表示进度条的边框宽度。borderRadius
表示进度条的圆角半径。
这个示例展示了如何使用 custom_linear_progress_indicator
插件来创建一个简单的自定义线性进度条,并根据需要更新其进度。你可以根据需要进一步自定义和扩展该插件的功能。