flutter_dropdown_alert
Flutter Dropdown Alert 帮助在成功、警告或错误时通知用户,类似于推送通知。
下拉通知栏将在您成功调用API、出错或其他类似情况时帮助通知用户。它将类似于推送通知,但您可以对其进行更多自定义。您可以在任何地方显示通知,而无需小部件。
演示
顶部

底部

如何使用。
# pubspec.yaml
dependencies:
flutter:
sdk: flutter
flutter_dropdown_alert: <last-version>
只需创建一个Stack小部件,并在main.dart中的MaterialApp内添加DropdownAlert(),如下所示:
import 'package:flutter_dropdown_alert/dropdown_alert.dart';
MaterialApp(
title: 'Dropdown Alert Demo',
theme: ThemeData(
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: Stack(
children: [
MyHomePage(title: 'Flutter Dropdown Alert Demo'),
DropdownAlert()
],
),
);
随时随地显示通知,甚至在bloc内无需小部件
接下来,将“alert_controller.dart”导入您的dart代码中
import 'package:flutter_dropdown_alert/alert_controller.dart';
AlertController.show("Title", "message here!", TypeAlert.success, payload);
payload参数是Map<String, dynamic>,此参数是可选的,应用于将数据传递给通知,并在单击通知时获取它。
隐藏通知
通知将自动隐藏,但如果您使用delayDismiss: 0,它将冻结并且不会自动隐藏,您必须使用此代码隐藏通知
AlertController.hide();
点击通知时的监听器
有两种方法可以做到这一点
- 使用控制器的监听器,将此代码放在小部件的
initState()中
AlertController.onTabListener((Map<String, dynamic> payload, TypeAlert type) {
print("$payload - $type");
});
- 使用
onTap参数
DropdownAlert(onTap: (Map<String, dynamic> payload, TypeAlert type) {
print("$payload - $type");
},)
TypeAlert
| 类型 | 描述 |
|---|---|
| TypeAlert.success | 操作成功时的类型,通知的背景将为绿色 |
| TypeAlert.warning | 操作警告时的类型,通知的背景将为棕色 |
| TypeAlert.error | 操作出错时的类型,通知的背景将为红色 |
参数
| 参数 | 描述 | 默认值 |
|---|---|---|
| onTap | 点击通知时的回调,将提供:Function(Map<String, dynamic>, TypeAlert) | 空 |
| successImage | 成功通知的Image.asset(),资产图像的URI |
图标小部件 |
| warningImage | 警告通知的Image.asset(),资产图像的URI |
图标小部件 |
| errorImage | 错误通知的Image.asset(),资产图像的URI |
图标小部件 |
| errorBackground | 错误时的背景颜色 | Colors.red |
| successBackground | Colors.green | |
| warningBackground | 0xFFCE863D | |
| titleStyle | 标题的文本样式 | |
| contentStyle | 内容的文本样式 | |
| title的最大行数 | 空 | |
| content的最大行数 | 空 | |
| duration | 动画时长 | 300 |
| delayDismiss | 通知自动消失的延迟时间,设置为0表示冻结通知 | 3000 |
| position | 显示通知的位置,包括:AlertPosition.TOP、AlertPosition.BOTTOM | AlertPosition.TOP |
来自react-native-dropdownalert的灵感