Flutter进度指示插件progress_indicator_plus的使用
Flutter进度指示插件progress_indicator_plus的使用
特性
- 可定制的线性进度指示器,具有动态文本颜色对比。
- 文本颜色会动态变化,以确保即使进度位于文本中间时也能清晰可见。
- 可轻松更改高度、内边距、颜色和其他属性。
- 支持自定义装饰和渐变。
开始使用
要使用此包,在你的pubspec.yaml
文件中添加progress_indicator_plus
作为依赖项:
dependencies:
progress_indicator_plus: ^0.0.4
使用方法
以下是一个简单的示例,展示如何使用LinearProgressIndicatorPlus
组件:
import 'package:flutter/material.dart';
import 'package:progress_indicator_plus/linear_progress_indicator_plus.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('进度指示器Plus示例')),
body: Center(
child: LinearProgressIndicatorPlus(
value: 0.7, // 进度值
text: '70%', // 显示的文本
height: 40, // 高度
padding: 8, // 内边距
backgroundColor: Colors.grey[300], // 背景颜色
color: Colors.blue, // 进度条颜色
borderRadius: BorderRadius.circular(8), // 圆角半径
),
),
),
);
}
}
示例
文本在背景上
文本一半在背景上,一半在进度颜色上
文本在进度颜色上
示例代码
以下是完整的示例代码:
import 'package:flutter/material.dart';
import 'package:progress_indicator_plus/linear_progress_indicator_plus.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 此组件是您的应用的根组件。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('进度指示器Plus示例')),
body: Center(
child: SizedBox(
width: 200,
child: LinearProgressIndicatorPlus(
value: 0.5, // 进度值
text: '50%', // 显示的文本
height: 40, // 高度
padding: 8, // 内边距
backgroundColor: Colors.grey[300], // 背景颜色
color: Colors.blue, // 进度条颜色
borderRadius: BorderRadius.circular(8), // 圆角半径
),
),
),
);
}
}
更多关于Flutter进度指示插件progress_indicator_plus的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter进度指示插件progress_indicator_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
progress_indicator_plus
是一个 Flutter 插件,用于在应用中显示各种类型的进度指示器。它提供了丰富的自定义选项,可以满足不同的设计需求。以下是使用 progress_indicator_plus
的基本步骤和示例代码。
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 progress_indicator_plus
依赖:
dependencies:
flutter:
sdk: flutter
progress_indicator_plus: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在需要使用进度指示器的 Dart 文件中导入插件:
import 'package:progress_indicator_plus/progress_indicator_plus.dart';
3. 使用进度指示器
progress_indicator_plus
提供了多种类型的进度指示器,以下是几个常见的示例。
3.1 圆形进度指示器
CircularProgressIndicatorPlus(
value: 0.6, // 进度值,范围是 0.0 到 1.0
backgroundColor: Colors.grey[300],
valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
strokeWidth: 4.0,
),
3.2 线性进度指示器
LinearProgressIndicatorPlus(
value: 0.4, // 进度值,范围是 0.0 到 1.0
backgroundColor: Colors.grey[300],
valueColor: AlwaysStoppedAnimation<Color>(Colors.green),
minHeight: 8.0,
),
3.3 自定义进度指示器
你还可以通过 CustomProgressIndicator
来创建自定义的进度指示器:
CustomProgressIndicator(
value: 0.8,
backgroundColor: Colors.grey[200],
valueColor: Colors.purple,
child: Center(
child: Text('80%', style: TextStyle(color: Colors.white)),
),
),
4. 完整示例
以下是一个完整的示例,展示如何在 Flutter 应用中使用 progress_indicator_plus
:
import 'package:flutter/material.dart';
import 'package:progress_indicator_plus/progress_indicator_plus.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Progress Indicator Plus Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
CircularProgressIndicatorPlus(
value: 0.6,
backgroundColor: Colors.grey[300],
valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
strokeWidth: 4.0,
),
SizedBox(height: 20),
LinearProgressIndicatorPlus(
value: 0.4,
backgroundColor: Colors.grey[300],
valueColor: AlwaysStoppedAnimation<Color>(Colors.green),
minHeight: 8.0,
),
SizedBox(height: 20),
CustomProgressIndicator(
value: 0.8,
backgroundColor: Colors.grey[200],
valueColor: Colors.purple,
child: Center(
child: Text('80%', style: TextStyle(color: Colors.white)),
),
),
],
),
),
),
);
}
}