Flutter自定义Toast提示插件bot_toast_module的使用
Flutter自定义Toast提示插件bot_toast_module的使用
概述
bot_toast_module
是一个用于 Flutter 的自定义 Toast 提示插件。它提供了多种通知方式,包括 Toast、App 内部通知、SnackBar 和 Dialog。该模块是 juneflow
项目的一部分,适合在 Flutter 应用中快速实现通知功能。
安装
要使用 bot_toast_module
插件,请按照以下步骤操作:
- 如果你的
juneflow
项目不存在,请根据 此指南 创建一个。 - 在项目的根目录打开终端,运行以下命令:
june add bot_toast_module
使用方法
初始化
在使用 bot_toast_module
之前,需要先初始化。通常在应用的主文件(如 main.dart
)中进行初始化。
import 'package:bot_toast_module/bot_toast_module.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BotToastInit(
child: MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
),
);
}
}
显示简单的 Toast 提示
使用 showToast
方法可以显示简单的 Toast 提示。
import 'package:bot_toast_module/bot_toast_module.dart';
class MyHomePage extends StatelessWidget {
void showToast() {
BotToast.showSimpleToast(
text: "这是一条简单的 Toast 提示",
duration: Duration(seconds: 2), // 显示时长
backgroundColor: Colors.black.withOpacity(0.8), // 背景颜色
textColor: Colors.white, // 文本颜色
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Toast 示例")),
body: Center(
child: ElevatedButton(
onPressed: showToast,
child: Text("显示 Toast"),
),
),
);
}
}
自定义 Toast 样式
可以通过设置不同的参数来自定义 Toast 的样式。例如,调整位置、字体大小等。
BotToast.showCustomToast(
child: Container(
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 20),
decoration: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.circular(10),
),
child: Text(
"自定义样式 Toast",
style: TextStyle(fontSize: 16, color: Colors.white),
),
),
duration: Duration(seconds: 3),
);
显示 SnackBar
除了 Toast,还可以使用 showSnackbar
方法来显示 SnackBar。
void showSnackBar() {
BotToast.showSnackbar(
title: "SnackBar 标题",
content: "这是 SnackBar 的内容",
duration: Duration(seconds: 3),
backgroundColor: Colors.blue,
titleStyle: TextStyle(color: Colors.white),
contentStyle: TextStyle(color: Colors.white),
);
}
显示 Dialog
如果需要更复杂的交互,可以使用 showDialog
方法。
void showDialogExample() {
BotToast.showCustomDialog(
title: "自定义 Dialog",
content: "这是一个自定义的 Dialog",
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text("关闭"),
),
],
);
}
更多关于Flutter自定义Toast提示插件bot_toast_module的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter自定义Toast提示插件bot_toast_module的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
bot_toast
是一个功能强大且易于使用的 Flutter Toast 提示插件。它支持多种类型的 Toast 提示,包括普通文本、加载中、成功、失败等。以下是如何在 Flutter 项目中使用 bot_toast
插件的详细步骤。
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 bot_toast
依赖:
dependencies:
flutter:
sdk: flutter
bot_toast: ^4.0.1 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化 BotToast
在 main.dart
文件中,初始化 BotToast
。通常,你需要在 MaterialApp
的外层包裹 BotToastInit
,并在 navigatorObservers
中添加 BotToastNavigatorObserver
。
import 'package:flutter/material.dart';
import 'package:bot_toast/bot_toast.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BotToastInit(
child: MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
navigatorObservers: [BotToastNavigatorObserver()], // 添加 BotToastNavigatorObserver
),
);
}
}
3. 使用 BotToast
在需要显示 Toast 的地方,调用 BotToast
的相关方法。以下是一些常见的用法:
3.1 显示普通文本 Toast
BotToast.showText(text: "这是一个普通文本 Toast");
3.2 显示加载中 Toast
BotToast.showLoading();
// 关闭加载中 Toast
BotToast.closeAllLoading();
3.3 显示成功/失败 Toast
BotToast.showSimpleNotification(title: "操作成功");
BotToast.showSimpleNotification(title: "操作失败", backgroundColor: Colors.red);
3.4 显示自定义 Toast
BotToast.showCustomNotification(
duration: Duration(seconds: 3),
toastBuilder: (_) {
return Container(
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(10),
),
child: Text(
"这是一个自定义 Toast",
style: TextStyle(color: Colors.white),
),
);
},
);
3.5 显示带图标的 Toast
BotToast.showAttachedWidget(
attachedBuilder: (_) => Icon(Icons.check, color: Colors.white),
duration: Duration(seconds: 2),
target: Offset(100, 100), // 指定显示位置
);
4. 其他配置
BotToast
还支持多种配置,例如全局 Toast 样式、动画效果等。你可以在 BotToastInit
中进行全局配置:
BotToastInit(
child: MaterialApp(
// ...
),
toastBuilder: (cancelFunc) => Container(
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.8),
borderRadius: BorderRadius.circular(10),
),
child: Text(
"全局样式 Toast",
style: TextStyle(color: Colors.white),
),
),
);
5. 关闭所有 Toast
你可以使用 BotToast.closeAllLoading()
来关闭所有正在显示的 Toast。
BotToast.closeAllLoading();