Flutter自定义Toast提示插件bot_toast_module的使用

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

Flutter自定义Toast提示插件bot_toast_module的使用

概述

bot_toast_module 是一个用于 Flutter 的自定义 Toast 提示插件。它提供了多种通知方式,包括 Toast、App 内部通知、SnackBar 和 Dialog。该模块是 juneflow 项目的一部分,适合在 Flutter 应用中快速实现通知功能。

安装

要使用 bot_toast_module 插件,请按照以下步骤操作:

  1. 如果你的 juneflow 项目不存在,请根据 此指南 创建一个。
  2. 在项目的根目录打开终端,运行以下命令:
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

1 回复

更多关于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();
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!