Toastification 
Toastification 是一个 Flutter 包,允许开发人员轻松地在其应用程序中显示 Toast 通知。Toast 通知是一种弹出消息,通常出现在屏幕上并在短时间内消失。它们通常用于向用户显示信息、警报或确认。
Toastification 包的一个优点是它能够处理多个 Toast 消息。使用 Toastification,开发人员可以一次显示多个 Toast 通知并将它们显示在队列中。这意味着,如果多个通知同时触发,它们将一个接一个地显示,而不是在屏幕上重叠。
总而言之,Toastification 是一个有用的包,适用于想要在应用程序中添加 Toast 通知而无需从头开始编写代码的 Flutter 开发人员。
| 带有自定义动画的示例视频 |
|---|
|
| Web 示例 | 移动端示例 |
|---|---|
![]() |
![]() |
安装
要使用 Toastification,您需要将其添加到 pubspec.yaml 文件中
dependencies:
toastification: ^0.0.2
然后,运行 flutter pub get 来安装该包。
用法
要在您的 Flutter 应用中使用 Toastification,请先导入该包
import 'package:toastification/toastification.dart';
调用 show 方法来显示一个 Toast 通知
toastification.show(
context: context,
title: 'Hello, world!',
autoCloseDuration: const Duration(seconds: 5),
);
或者,您可以使用 Toastification 类的构造函数并调用 show 方法
Toastification().show(
context: context,
title: 'Hello, world!',
autoCloseDuration: const Duration(seconds: 5),
);
这两种方法具有相同的行为
这将显示一个文本为“Hello, world!”的 Toast 消息。
您可以将其他参数传递给 show() 方法来自定义 Toast 消息的外观
toastification.show(
context: context,
autoCloseDuration: const Duration(seconds: 5),
title: 'Hello, World!',
description: 'This is a sample toast message.',
animationDuration: const Duration(milliseconds: 300),
animationBuilder: (context, animation, child) {
return RotationTransition(
turns: animation,
child: child,
);
},
icon: Icon(Icons.check),
backgroundColor: const Color(0xff1976d2),
foregroundColor: Colors.white,
brightness: Brightness.light,
padding: const EdgeInsets.all(16),
margin: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
borderRadius: BorderRadius.circular(8),
elevation: 4,
onCloseTap: () {
// Do something when the toast is closed
},
showProgressBar: true,
showCloseButton: true,
closeOnClick: false,
pauseOnHover: true,
);
autoCloseDuration(可选):一个 Duration 对象,指定 Toast 消息显示多长时间后自动关闭。如果未提供此参数,则将使用默认的 2 秒时长。overlayState(可选):一个 OverlayState 对象,表示将显示 Toast 消息的 overlay 的状态。如果未提供此参数,则将创建一个新的 OverlayState 对象。title(必需):一个字符串,表示 Toast 通知的主要消息。description(可选):一个字符串,表示 Toast 通知中的辅助消息,显示在主要消息下方。icon(可选):一个 Widget,表示要在 Toast 通知中显示的图标。animationDuration(可选):用于自定义动画的 Duration。默认为 null(无自定义动画)。animationBuilder(可选):一个自定义动画构建器函数,它接收BuildContext、Animation对象和child widget作为参数。默认为 null(无自定义动画)。您可以通过提供此字段来创建自定义过渡。backgroundColor(可选):一个 Color 对象,表示 Toast 通知的背景颜色。默认情况下,背景颜色设置为 Colors.grey[700]。foregroundColor(可选):一个 Color 对象,表示 Toast 通知的前景(文本)颜色。默认情况下,前景颜色设置为白色。brightness(可选):一个 Brightness 对象,表示 Toast 通知 的亮度。默认情况下,亮度设置为 Brightness.dark。padding(可选):一个 EdgeInsetsGeometry 对象,指定 Toast 通知 的内边距。margin(可选):一个 EdgeInsetsGeometry 对象,指定 Toast 通知 的外边距。borderRadius(可选):一个 BorderRadiusGeometry 对象,指定 Toast 通知 的圆角。elevation(可选):一个 double 值,指定 Toast 通知 的阴影。onCloseTap(可选):当用户点击 Toast 通知 的关闭按钮时将调用的 VoidCallback 函数。showProgressBar(可选):一个布尔值,指示是否在 Toast 通知 上显示进度条。默认情况下,进度条隐藏。showCloseButton(可选):一个布尔值,指示是否在 Toast 通知 上显示关闭按钮。默认情况下,会显示关闭按钮。closeOnClick(可选):一个布尔值,指示 Toast 通知 在点击时是否关闭。默认情况下,Toast 通知 在点击时不会关闭。pauseOnHover(可选):一个布尔值,指示当鼠标指针悬停在 Toast 通知 上时是否暂停 Toast 通知。默认情况下,Toast 通知 在悬停时不会暂停。
其他预定义样式方法
Toastification 包还提供了四种预定义方法,可用于快速创建和显示具有不同样式的 Toast 消息,具体取决于正在显示的消息类型。
showSuccess:显示带有绿色背景和对勾图标的成功消息。showError:显示带有红色背景和错误图标的错误消息。showInfo:显示带有蓝色背景和信息图标的信息消息。showWarning:显示带有黄色背景和警告图标的警告消息。
这四种方法都接受与 show() 方法相同的参数集,允许您根据需要自定义 Toast 消息的外观和行为。
以下是使用每种预定义方法的示例
showSuccess()
显示带有绿色背景和对勾图标的成功消息。
toastification.showSuccess(
context: context,
title: 'Success!',
autoCloseDuration: const Duration(seconds: 5),
);
showError()
显示带有红色背景和错误图标的错误消息。
toastification.showError(
context: context,
title: 'Error!',
autoCloseDuration: const Duration(seconds: 5),
);
showInfo()
显示带有蓝色背景和信息图标的信息消息。
toastification.showInfo(
context: context,
title: 'Info',
autoCloseDuration: const Duration(seconds: 5),
);
showWarning()
显示带有黄色背景和警告图标的警告消息。
toastification.showWarning(
context: context,
title: 'Warning!',
autoCloseDuration: const Duration(seconds: 5),
);
使用 showCustom() 创建您自己的 Toast 样式
如果您希望对 Toast 消息的外观和行为有更多控制,可以使用 showCustom() 方法创建完全自定义的 Toast 消息。此方法允许您传递一个返回您要显示的 Widget 的构建器函数,从而使您能够完全控制 Toast 的布局、样式和交互性。
使用 showCustom(),您的可能性是无限的。您可以创建与您应用的独特视觉风格相匹配的自定义 Toast 消息,或者您可以添加按钮和滑块等交互式元素,使您的 Toast 消息更具吸引力和动态性。
以下是如何使用 showCustom() 创建一个自定义 Toast 消息的示例,其中包含一个允许用户执行操作的按钮
toastification.showCustom(
context: context,
builder: (BuildContext context, ToastificationItem holder) {
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: Colors.blue,
),
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Custom Toast', style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold)),
SizedBox(height: 8),
Text('This is a custom toast message!', style: TextStyle(color: Colors.white)),
SizedBox(height: 16),
ElevatedButton(
onPressed: () {
// Perform an action when the button is pressed
},
child: Text('Do Something'),
),
],
),
);
},
autoCloseDuration: const Duration(seconds: 5),
);
使用 showCustom(),您的想象力是唯一的限制。创建一个脱颖而出的 Toast 消息,为您的应用增添一丝个性!
自定义动画
您可以通过提供动画持续时间的 Duration 并使用 animationBuilder 参数实现自己的动画构建器函数来定制 Toast 通知 的动画。以下是如何使用自定义动画的示例
toastification.show(
context: context,
title: 'Default',
// .... Other parameters
animationDuration: const Duration(milliseconds: 300),
animationBuilder: (context, animation, child) {
return RotationTransition(
turns: animation,
child: child,
);
},
);
管理您的通知
除了显示 Toast 消息之外,Toastification 包还提供了用于管理和关闭现有通知的方法。以下是可用方法:
查找通知项
查找具有给定 ID 的通知
final notification = Toastification().findToastificationItem('my_notification');
关闭通知
从屏幕上删除特定的通知。
final notification = Toastification().show(
context: context,
title: 'Hello',
autoCloseDuration: const Duration(seconds: 5),
);
Toastification().dismiss(notification);
按 ID 关闭通知
从屏幕上删除具有给定 ID 的通知。
Toastification().dismissById('my_notification_id');
关闭第一个通知
从屏幕上删除显示的最先的通知。
Toastification().dismissFirst();
关闭最后一个通知
从屏幕上删除显示的最末的通知。
Toastification().dismissLast();
贡献
我们随时欢迎您的贡献!如果您有任何建议、错误报告或功能请求,请在 GitHub 存储库中打开一个 issue。
如果您想为该项目做出贡献,请阅读 CONTRIBUTING.md 文件以获取有关如何贡献的更多信息。
许可证
Toastification 在 BSD-3-Clause 许可证下发布。您可以在存储库根目录的 LICENSE 文件中找到许可证的全文。

