Flutter底部加载动画插件bottom_loader的使用
Flutter底部加载动画插件bottom_loader的使用
bottom_loader
是一个轻量级的Flutter插件,用于在应用程序中显示底部加载动画。它是一个状态管理组件,允许你动态地更改底部加载器上的文本。
支持的Dart版本
- Dart SDK版本 >= 2.12.0
安装
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
bottom_loader: ^0.2.2
使用方法
-
导入包 在你的Dart文件中导入
bottom_loader
包:import 'package:bottom_loader/bottom_loader.dart';
-
创建BottomLoader实例 在
build()
方法中初始化BottomLoader
对象,并传递context
参数:BottomLoader bl; [@override](/user/override) Widget build(BuildContext context) { bl = new BottomLoader(context); // 其他代码... }
-
自定义加载器(可选) 你可以指定一个自定义的加载器小部件,并设置是否可以通过返回按钮关闭底部加载器(
isDismissible
参数)。还可以选择是否显示日志(showLogs
参数):bl = new BottomLoader( context, isDismissible: true, // 是否可以通过返回按钮关闭 showLogs: true, // 是否显示日志 loader: CircularProgressIndicator(), // 自定义加载器 );
-
样式化底部加载器(可选) 你可以通过
style()
方法来自定义底部加载器的样式,包括消息文本、背景颜色和文本样式:bl.style( message: '正在加载文件...', // 消息文本 backgroundColor: Colors.white, // 背景颜色 messageTextStyle: TextStyle( color: Colors.black, // 文本颜色 fontSize: 19.0, // 文本大小 fontWeight: FontWeight.w600 // 文本粗细 ), );
-
显示底部加载器 使用
show()
方法显示底部加载器:await bl.show();
-
关闭底部加载器 使用
close()
方法关闭底部加载器,并可以监听关闭后的回调:bl.close().then((isHidden) { print(isHidden); // 打印是否已隐藏 });
示例代码
以下是一个完整的示例代码,展示了如何使用 bottom_loader
插件:
import 'dart:async';
import 'package:bottom_loader/bottom_loader.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Bottom Loader Demo',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
BottomLoader bl;
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Bottom Loader'),
),
body: Container(
child: Center(
child: ElevatedButton(
child: Text('显示底部加载器'),
onPressed: () {
// 初始化 BottomLoader
bl = new BottomLoader(
context,
showLogs: true, // 显示日志
isDismissible: true, // 可以通过返回按钮关闭
);
// 设置样式
bl.style(
message: '请稍候...',
);
// 显示底部加载器
bl.show();
// 5秒后关闭底部加载器并导航到下一个页面
Future.delayed(Duration(seconds: 5)).whenComplete(() {
bl.close();
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => SecondScreen()),
);
});
},
),
),
),
);
}
}
class SecondScreen extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Bottom Loader Sample'),
leading: IconButton(
icon: Icon(Icons.arrow_back_ios),
onPressed: () => Navigator.of(context).pop(),
),
),
body: Center(child: Text('第二个页面')),
);
}
}
更多关于Flutter底部加载动画插件bottom_loader的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter底部加载动画插件bottom_loader的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用bottom_loader
插件来显示底部加载动画的示例代码。
首先,你需要在你的pubspec.yaml
文件中添加bottom_loader
依赖:
dependencies:
flutter:
sdk: flutter
bottom_loader: ^x.y.z # 请替换为最新版本号
然后,运行flutter pub get
来获取依赖。
接下来,在你的Flutter项目中,你可以按照以下方式使用BottomLoader
组件:
import 'package:flutter/material.dart';
import 'package:bottom_loader/bottom_loader.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Bottom Loader Example'),
),
body: BottomLoaderExample(),
),
);
}
}
class BottomLoaderExample extends StatefulWidget {
@override
_BottomLoaderExampleState createState() => _BottomLoaderExampleState();
}
class _BottomLoaderExampleState extends State<BottomLoaderExample> {
bool isLoading = false;
void startLoading() {
setState(() {
isLoading = true;
// 模拟加载过程
Future.delayed(Duration(seconds: 2), () {
setState(() {
isLoading = false;
});
});
});
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Expanded(
child: ListView.builder(
itemCount: 20,
itemBuilder: (context, index) {
return ListTile(
title: Text('Item $index'),
);
},
),
),
if (isLoading)
BottomLoader(
color: Colors.blue,
backgroundColor: Colors.white,
size: 50,
loadingText: "Loading...",
),
else
SizedBox(height: 20), // 当不加载时,给底部留出一些空间
],
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,它包含一个BottomLoader
组件,当isLoading
状态为true
时显示加载动画。我们还在startLoading
方法中模拟了一个2秒的加载过程,通过Future.delayed
来延迟设置isLoading
为false
。
你可以通过调用startLoading
方法来触发加载动画。例如,你可以在按钮点击事件中调用它:
// 在BottomLoaderExample类的build方法中添加按钮
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Expanded(
child: ListView.builder(
itemCount: 20,
itemBuilder: (context, index) {
return ListTile(
title: Text('Item $index'),
);
},
),
),
ElevatedButton(
onPressed: startLoading,
child: Text('Start Loading'),
),
if (isLoading)
BottomLoader(
color: Colors.blue,
backgroundColor: Colors.white,
size: 50,
loadingText: "Loading...",
),
else
SizedBox(height: 20), // 当不加载时,给底部留出一些空间
],
);
}
这样,当你点击“Start Loading”按钮时,BottomLoader
组件就会显示加载动画。加载完成后,动画会自动消失。