Flutter进度指示器插件liquid_progress_indicator_ns的使用
Flutter进度指示器插件liquid_progress_indicator_ns
的使用
liquid_progress_indicator_ns
是一个用于 Flutter 应用的进度指示器插件。它提供了三种类型的进度指示器:液态圆形进度指示器(LiquidCircularProgressIndicator)、液态线性进度指示器(LiquidLinearProgressIndicator)和自定义形状进度指示器(LiquidCustomProgressIndicator)。这些进度指示器可以自定义颜色、边框、方向等属性。
特性
- 液态圆形进度指示器。
- 液态线性进度指示器。
- 自定义形状进度指示器。
- 使用方式与 Flutter 自带的
ProgressIndicator
类似。 - 可以自定义颜色、边框、方向等属性。
使用方法
首先,需要在项目中引入 liquid_progress_indicator_ns
包:
import 'package:liquid_progress_indicator_ns/liquid_progress_indicator.dart';
液态圆形进度指示器(LiquidCircularProgressIndicator)
LiquidCircularProgressIndicator(
value: 0.25, // 默认值为 0.5。
valueColor: AlwaysStoppedAnimation(Colors.pink), // 默认值为当前主题的强调色。
backgroundColor: Colors.white, // 默认值为当前主题的背景色。
borderColor: Colors.red,
borderWidth: 5.0,
direction: Axis.horizontal, // 液体移动的方向(Axis.vertical = 从下到上,Axis.horizontal = 从左到右)。默认值为 Axis.vertical。
center: Text("Loading..."), // 中心文本。
);
液态线性进度指示器(LiquidLinearProgressIndicator)
LiquidLinearProgressIndicator(
value: 0.25, // 默认值为 0.5。
valueColor: AlwaysStoppedAnimation(Colors.pink), // 默认值为当前主题的强调色。
backgroundColor: Colors.white, // 默认值为当前主题的背景色。
borderColor: Colors.red,
borderWidth: 5.0,
borderRadius: 12.0,
direction: Axis.vertical, // 液体移动的方向(Axis.vertical = 从下到上,Axis.horizontal = 从左到右)。默认值为 Axis.horizontal。
center: Text("Loading..."), // 中心文本。
);
自定义形状进度指示器(LiquidCustomProgressIndicator)
LiquidCustomProgressIndicator(
value: 0.2, // 默认值为 0.5。
valueColor: AlwaysStoppedAnimation(Colors.pink), // 默认值为当前主题的强调色。
backgroundColor: Colors.white, // 默认值为当前主题的背景色。
direction: Axis.vertical, // 液体移动的方向(Axis.vertical = 从下到上,Axis.horizontal = 从左到右)。
shapePath: _buildBoatPath(), // 一个 Path 对象用于绘制进度指示器的形状。进度指示器的大小由该路径的边界创建。
)
其中 _buildBoatPath()
函数需要自行实现,用于定义自定义形状的路径。
完整示例 Demo
以下是一个完整的 Flutter 应用示例,演示了如何使用 liquid_progress_indicator_ns
插件的不同类型的进度指示器。
import 'package:flutter/material.dart';
import 'liquid_circular_progress_indicator_page.dart';
import 'liquid_custom_progress_indicator_page.dart';
import 'liquid_linear_progress_indicator_page.dart';
void main() => runApp(MaterialApp(home: Example()));
class Example extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Liquid Progress Indicator Examples"),
),
body: Padding(
padding: const EdgeInsets.all(28.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
TextButton(
child: Text("Circular"),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith(
(states) => Colors.grey[300])),
onPressed: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => LiquidCircularProgressIndicatorPage(),
),
),
),
TextButton(
child: Text("Linear"),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith(
(states) => Colors.grey[300])),
onPressed: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => LiquidLinearProgressIndicatorPage(),
),
),
),
TextButton(
child: Text("Custom"),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith(
(states) => Colors.grey[300])),
onPressed: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => LiquidCustomProgressIndicatorPage(),
),
),
),
],
),
),
);
}
}
更多关于Flutter进度指示器插件liquid_progress_indicator_ns的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter进度指示器插件liquid_progress_indicator_ns的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用liquid_progress_indicator_ns
插件的一个示例代码案例。这个插件提供了一个非常漂亮的液态进度指示器。
首先,确保你已经在pubspec.yaml
文件中添加了liquid_progress_indicator_ns
依赖:
dependencies:
flutter:
sdk: flutter
liquid_progress_indicator_ns: ^x.y.z # 请替换为最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,在你的Flutter项目中,你可以像这样使用LiquidProgressIndicator
:
import 'package:flutter/material.dart';
import 'package:liquid_progress_indicator_ns/liquid_progress_indicator_ns.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Liquid Progress Indicator Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Liquid Progress Indicator Demo'),
),
body: Center(
child: LiquidProgressIndicatorDemo(),
),
),
);
}
}
class LiquidProgressIndicatorDemo extends StatefulWidget {
@override
_LiquidProgressIndicatorDemoState createState() => _LiquidProgressIndicatorDemoState();
}
class _LiquidProgressIndicatorDemoState extends State<LiquidProgressIndicatorDemo> with SingleTickerProviderStateMixin {
double _progress = 0.0;
@override
void initState() {
super.initState();
// 模拟进度变化
_startProgress();
}
void _startProgress() {
Timer.periodic(Duration(milliseconds: 100), (timer) {
setState(() {
if (_progress < 1.0) {
_progress += 0.01;
} else {
timer.cancel();
}
});
});
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(
height: 200,
child: LiquidProgressIndicator(
value: _progress,
direction: Axis.vertical, // 可以是 Axis.horizontal 或 Axis.vertical
backgroundColor: Colors.grey[200]!,
borderColor: Colors.blue,
borderWidth: 4.0,
completedColor: Colors.blue,
),
),
SizedBox(height: 20),
Text(
'Progress: ${(_progress * 100).toStringAsFixed(1)}%',
style: TextStyle(fontSize: 20),
),
],
);
}
}
在这个示例中:
- 我们首先在
pubspec.yaml
中添加了liquid_progress_indicator_ns
依赖。 - 在
MyApp
中,我们设置了应用的基本结构,包括一个Scaffold
和一个AppBar
。 LiquidProgressIndicatorDemo
是一个有状态的Widget,它使用_startProgress
方法来模拟进度的变化。_startProgress
方法使用Timer.periodic
来每秒增加进度10次(每次增加0.01)。LiquidProgressIndicator
被放置在一个SizedBox
中以控制其高度,并配置了各种属性如方向、背景颜色、边框颜色、边框宽度和完成颜色。- 一个
Text
widget 用于显示当前的进度百分比。
这样,你就可以在你的Flutter应用中显示一个漂亮的液态进度指示器了。