Flutter通知覆盖插件t_overlay_notification的使用

发布于 1周前 作者 wuwangju 来自 Flutter

Flutter通知覆盖插件t_overlay_notification的使用

TOverlayNotification

TOverlayNotification是一个可重用的Flutter通知覆盖小部件,用于显示成功、错误、警告和信息消息。该包允许您显示可自定义的通知,这些通知在指定时间后自动消失,并可以堆叠多个通知。

特性

  • 不同类型的通知样式:成功、错误、警告和信息。
  • 在可配置的时间后自动消失。
  • 支持堆叠多个通知。
  • 高度可定制的UI和消息内容。
  • 易于集成到任何Flutter项目中。

使用方法

步骤 1: 添加依赖

pubspec.yaml文件中添加以下依赖:

dependencies:
  t_overlay_notification: ^1.1.0

步骤 2: 导入包

在您的Dart文件中导入包:

import 'package:t_overlay_notification/t_overlay_notification.dart';

步骤 3: 显示通知

使用TNotificationOverlay.show()方法显示通知:

TNotificationOverlay.show(
  context: context,  // 插入覆盖层的BuildContext。
  title: 'Success',  // 通知标题。
  message: 'This is a success notification.',  // 消息内容。
  type: NotificationType.success,  // 通知类型(成功、错误、警告、信息)。
);

函数类型

  • TNotificationOverlay.success:绿色的成功消息通知。
  • TNotificationOverlay.error:红色的错误消息通知。
  • TNotificationOverlay.warning:黄色的警告消息通知。
  • TNotificationOverlay.info:蓝色的信息消息通知。

通知类型

  • NotificationType.success:绿色的成功消息通知。
  • NotificationType.error:红色的错误消息通知。
  • NotificationType.warning:黄色的警告消息通知。
  • NotificationType.info:蓝色的信息消息通知。

自定义

您可以自定义通知的持续时间、位置和其他UI方面,如颜色、填充和边距。

TNotificationOverlay.show(
  context: context,
  title: 'Info',
  message: 'This is an info notification.',
  type: NotificationType.info,
  duration: Duration(seconds: 5),  // 自定义持续时间
);

示例用法

基本通知

要显示带有标题、副标题和自定义类型的简单通知,请使用TNotificationOverlay.show()方法:

import 'package:flutter/material.dart';
import 'package:t_overlay_notification/t_overlay_notification.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Notification Overlay Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              TNotificationOverlay.show(
                context: context,
                title: 'Success Notification',
                subTitle: 'This is a success notification.',
                type: NotificationType.success,
                duration: Duration(seconds: 3),
                height: 80, // 调整通知的高度
                width: 350, // 调整通知的宽度
                spacing: 8, // 堆叠通知之间的间距
                position: NotificationPosition.topRight,
              );
            },
            child: Text('Show Notification'),
          ),
        ),
      ),
    );
  }
}

带滑动和淡出动画的通知

您可以自定义通知的滑入和淡出动画:

import 'package:flutter/material.dart';
import 'package:t_overlay_notification/t_overlay_notification.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Animated Notification Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              TNotificationOverlay.show(
                context: context,
                title: 'Warning Notification',
                subTitle: 'This is a warning notification.',
                type: NotificationType.warning,
                duration: Duration(seconds: 3),
                slideInDirection: SlideDirection.left, // 从左侧滑入
                slideOutDirection: SlideDirection.left, // 向左侧滑出
                height: 80,
                width: 350,
                spacing: 10,
                position: NotificationPosition.bottomLeft,
              );
            },
            child: Text('Show Animated Notification'),
          ),
        ),
      ),
    );
  }
}

自定义通知设计

通过各种颜色选项自定义通知的外观:

TNotificationOverlay.show(
  context: context,
  title: 'Custom Notification', // 必需的标题
  subTitle: 'This is a custom-styled notification.', // 可选的副标题
  action: TextButton( // 示例操作小部件
    onPressed: () {
      print('Action clicked');
    },
    child: Text('UNDO', style: TextStyle(color: Colors.white)),
  ),
  type: NotificationType.info, // 通知类型
  backgroundColor: Colors.blueAccent, // 背景颜色
  borderColor: Colors.blue, // 边框颜色
  titleColor: Colors.white, // 标题文本颜色
  messageColor: Colors.white70, // 副标题文本颜色
  iconColor: Colors.white, // 图标颜色
  borderRadius: 10.0, // 圆角
  paddingVertical: 16.0, // 垂直填充
  paddingHorizontal: 20.0, // 水平填充
  duration: Duration(seconds: 5), // 通知持续时间
  sticky: false, // 设置为true以固定通知
  height: 100, // 通知高度
  width: 300, // 通知宽度
  spacing: 12, // 通知之间的间距
  position: NotificationPosition.topLeft, // 屏幕上的位置
  slideInDirection: SlideDirection.leftToRight, // 滑入动画方向
  slideOutDirection: SlideDirection.rightToLeft, // 滑出动画面方向
);

API参考

  • show(): 使用提供的参数显示通知。
  • context: 小部件的BuildContext。
  • title: 通知的标题(必需)。
  • subTitle: 通知的副标题(可选)。
  • type: 通知类型(成功、错误、警告、信息)[默认:NotificationType.info]。
  • duration: 通知显示的持续时间 [默认:Duration(seconds: 3)]。
  • spacing: 堆叠通知之间的间距 [默认:10.0]。
  • position: 通知在屏幕上的位置(topLeft, topRight, bottomLeft, bottomRight)。
  • slideInDirection: 通知滑入的方向(可选)。
  • slideOutDirection: 通知滑出的方向(可选)。
  • height, width: 通知框的尺寸(可选)。
  • backgroundColor, borderColor, titleColor, messageColor, iconColor: 自定义通知的颜色。
  • paddingVertical, paddingHorizontal: 自定义通知的填充。
  • borderRadius: 自定义通知的圆角。
  • onClose: 处理通知关闭动作的回调。

注意事项

  • 您可以根据需要自定义动画持续时间和滑动方向。
  • slideInDirectionslideOutDirection可以设置为以下任一值:
    • SlideDirection.left
    • SlideDirection.right
    • SlideDirection.top
    • SlideDirection.bottom
  • 通知在指定的持续时间后自动消失,除非通过onClose回调手动关闭。

其他信息

  • 贡献: 如果您想为此项目做出贡献,请打开一个拉取请求或提交一个问题。欢迎对UI进行改进或添加新功能。
  • 问题: 如果您遇到任何错误或有任何改进建议,请在存储库中提交问题。
  • 支持: 该包正在积极维护,通常会在1–2个工作日内解决问题。

更多关于Flutter通知覆盖插件t_overlay_notification的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter通知覆盖插件t_overlay_notification的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用t_overlay_notification插件的示例代码。这个插件允许你在Flutter应用中显示覆盖在系统通知栏之上的通知。

首先,你需要在你的pubspec.yaml文件中添加t_overlay_notification依赖项:

dependencies:
  flutter:
    sdk: flutter
  t_overlay_notification: ^最新版本号  # 替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

接下来,你可以在你的Flutter项目中导入并使用这个插件。以下是一个简单的示例,展示如何显示和隐藏通知。

1. 导入插件

在你的Dart文件中导入插件:

import 'package:t_overlay_notification/t_overlay_notification.dart';

2. 初始化插件

在你的应用的主文件(通常是main.dart)中,你可以初始化插件:

import 'package:flutter/material.dart';
import 'package:t_overlay_notification/t_overlay_notification.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  OverlayNotification? overlayNotification;

  @override
  void initState() {
    super.initState();
    // 初始化OverlayNotification
    overlayNotification = OverlayNotification.getInstance();
  }

  void showNotification() {
    overlayNotification?.show(
      title: '通知标题',
      body: '这是通知的内容。',
      icon: Icon(Icons.notification_important, color: Colors.blue),
      button: TextButton(
        onPressed: () {
          overlayNotification?.hide();
        },
        child: Text('关闭'),
      ),
      duration: Duration(seconds: 5), // 5秒后自动隐藏
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Overlay Notification 示例'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: showNotification,
          child: Text('显示通知'),
        ),
      ),
    );
  }
}

3. 运行你的应用

现在你可以运行你的Flutter应用,点击按钮后应该会显示一个覆盖在系统通知栏之上的通知。

注意事项

  • 确保你已经在AndroidManifest.xml和iOS的Info.plist中配置了必要的权限,以允许应用显示覆盖通知。
  • 插件的具体API可能会随着版本更新而变化,请参考最新的插件文档以获取最新的使用方法和API信息。

这样,你就成功地在Flutter项目中使用了t_overlay_notification插件来显示覆盖通知了。

回到顶部