Flutter消息提示插件toast_notification的使用
Flutter消息提示插件toast_notification的使用
特性
允许您显示带有自定义时长的消息提示,或者在任何时候关闭它。
- 设置自定义消息
- 设置显示时长
- 不设置时长,并在需要时随时关闭,例如响应服务器返回的结果
开始使用
此消息提示可以在任何页面上使用,只要该页面被Stack
包裹,并且我们的包作为Stack
的子元素之一。您可以阅读使用方法或示例以更好地理解。
安装
在终端运行以下命令来安装包。
flutter pub get toast_notification
或者,在您的pubspec.yaml
文件中添加以下行:
dependencies:
flutter:
sdk: flutter
toast_notification: 1.0.0
基本设置
在代码中添加以下片段,可能是在某个函数调用中…
onClick() {
ToastMe(
text: "成功发布内容",
type: ToasterType.Check).showToast(context);
}
示例展示
展示上述示例的代码:
ToastMe(
text: "无效验证码,请重试!",
type: ToasterType.Error,
controller: toasterController,).showToast(context);
额外信息
除了这些基本选项外,此通知还提供了几个其他选项供您使用,以便根据您的应用需求自定义此消息提示。
类型
目前有三种类型,未来计划添加更多类型。
ToasterType.Loading
ToasterType.Check
ToasterType.Error
各部分的颜色
默认情况下,图标的颜色和文本颜色为白色,背景颜色为#1a1a1a
。如果您想设置自定义颜色,可以这样做:
ToastMe(
text: "成功完成某事",
type: ToasterType.Check,
controller: toasterController,
iconColor: Colors.white,
backgroundColor: Colors.black,
textColor: Colors.white).showToast(context);
没有时长
如果您不设置时长,那么默认行为是消息提示不会自动消失,除非调用此函数:
toasterController.end();
设有时长
如果您设置了时长,那么消息提示会在给定时间后自动消失。注意,时长是以毫秒为单位,并且数据类型为int?
。
首先在顶部创建控制器,最好在builder
函数之外创建:
final ToasterController toasterController = ToasterController();
然后使用控制器来显示消息提示:
ToastMe(
text: "成功发布内容",
type: ToasterType.Check,
duration: 2000 // 在毫秒内
).showToast(context);
更改文本
您还可以在应用程序中稍后更改文本,例如:
toasterController.setData("新的文本");
更多关于Flutter消息提示插件toast_notification的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter消息提示插件toast_notification的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter中使用toast_notification
插件来实现消息提示的示例代码。
首先,你需要在你的pubspec.yaml
文件中添加toast_notification
依赖:
dependencies:
flutter:
sdk: flutter
toast_notification: ^0.2.0 # 请注意版本号,使用最新的版本
然后,运行flutter pub get
来安装依赖。
接下来,你可以在你的Flutter应用中按照以下步骤使用toast_notification
插件:
- 导入插件:
在你的Dart文件中导入toast_notification
插件:
import 'package:toast_notification/toast_notification.dart';
- 初始化ToastNotification:
在你的应用的根级别(通常是在MaterialApp
或CupertinoApp
的builder中)初始化ToastNotification
:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ToastNotification(
child: MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
),
);
}
}
- 显示Toast消息:
在你的应用中,你可以通过ToastNotification().showToast
方法来显示Toast消息。例如,在一个按钮点击事件中:
class MyHomePage extends StatelessWidget {
final ToastNotificationProvider _toastNotificationProvider = ToastNotificationProvider();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Toast Notification Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
_toastNotificationProvider.showToast(
message: "这是一个Toast消息",
duration: ToastDuration.long, // 可以是ToastDuration.short或ToastDuration.long
gravity: ToastGravity.bottom, // 可以是ToastGravity.top, ToastGravity.bottom, ToastGravity.center
backgroundColor: Colors.blue,
textColor: Colors.white,
fontSize: 16.0,
);
},
child: Text('显示Toast'),
),
),
);
}
}
注意:上面的代码示例中,我们直接使用了ToastNotificationProvider()
来显示Toast消息,但在实际使用中,你可能需要通过Provider
包或context
来获取ToastNotificationProvider
的实例,以便在非顶层组件中调用showToast
方法。这里为了简化示例,直接在组件内部创建了ToastNotificationProvider
的实例。
为了更规范地使用,你可以考虑使用Provider
包来管理ToastNotificationProvider
的状态,这样可以在应用的任何地方通过Provider.of<ToastNotificationProvider>(context)
来获取实例。
例如,使用Provider
包时的初始化方式:
import 'package:provider/provider.dart';
void main() {
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => ToastNotificationProvider()),
],
child: MyApp(),
),
);
}
然后在组件中通过Provider.of<ToastNotificationProvider>(context)
来获取实例并调用showToast
方法。
希望这个示例能帮你更好地理解如何在Flutter中使用toast_notification
插件来实现消息提示功能。