Flutter 学习之旅 之 flutter 使用 fluttertoast 的 toast 实现简单的 Toast 效果

Flutter 学习之旅 之 flutter 使用 fluttertoast 的 toast 实现简单的 Toast 效果

目录

[Flutter 学习之旅 之 flutter 使用 fluttertoast 的 toast 实现简单的 Toast 效果](#Flutter 学习之旅 之 flutter 使用 fluttertoast 的 toast 实现简单的 Toast 效果)

一、简单介绍

[二、简单介绍 futtertoast](#二、简单介绍 futtertoast)

[三、安装 fluttertoast](#三、安装 fluttertoast)

四、简单案例实现

五、关键脚本


一、简单介绍

Flutter 是一款开源的 UI 软件开发工具包,由 Google 开发和维护。它允许开发者使用一套代码同时构建跨平台的应用程序,包括移动设备(iOS 和 Android)、Web 和桌面平台(Windows、macOS 和 Linux)。

Flutter 使用 Dart 编程语言,它可以将代码编译为 ARM 或 Intel 机器代码以及 JavaScript,从而实现快速的性能。Flutter 提供了一个丰富的预置小部件库,开发者可以根据自己的需求灵活地控制每个像素,从而创建自定义的、适应性强的设计,这些设计在任何屏幕上都能呈现出色的外观和感觉。

二、简单介绍 futtertoast

网址:fluttertoast | Flutter package

fluttertoast 是一个用于在 Flutter 应用程序中显示 Toast 消息的插件。它允许开发者以一种简单、高效的方式向用户显示短暂的通知或提示消息。

三、安装 fluttertoast

1、直接运行命令

使用 Flutter:flutter pub add fluttertoast

2、或者在 pubspec.yaml 添加

Dart 复制代码
dependencies:
  fluttertoast: ^8.2.12

四、简单案例实现

1、这里使用 Android Studio 进行创建 Flutter 项目

2、创建一个 application 的 Flutter 项目

3、工程创建后如下

4、添加脚本,实现 ToastUtils 的 Toast 功能封装

5、在 main 中 测试封装ToastUtils 的 Toast 功能

6、连接设备,运行项目,简单效果如下

五、关键脚本

1、fluttertoast_plugin.dart

Dart 复制代码
import 'package:flutter/material.dart'; // 导入 Flutter 的 Material 组件库
import 'package:fluttertoast/fluttertoast.dart'; // 导入 fluttertoast 插件

/// Toast 工具类,封装了常用的 Toast 显示功能
class ToastUtils {
  /// 显示普通 Toast 消息
  /// [msg]:要显示的消息内容
  static void showToast(String msg) {
    // 调用 Fluttertoast 的 showToast 方法显示 Toast
    Fluttertoast.showToast(
      // msg:Toast 显示的消息内容
      msg: msg,
      // toastLength:Toast 显示的时长,Toast.LENGTH_SHORT 表示短时间显示
      toastLength: Toast.LENGTH_SHORT,
      // gravity:Toast 显示的位置,ToastGravity.BOTTOM 表示在屏幕底部显示
      gravity: ToastGravity.BOTTOM,
      // timeInSecForIosWeb:在 iOS 和 Web 平台上 Toast 显示的时间(秒)
      timeInSecForIosWeb: 1,
      // backgroundColor:Toast 的背景颜色,这里设置为半透明黑色
      backgroundColor: Colors.black54,
      // textColor:Toast 文本的颜色,这里设置为白色
      textColor: Colors.white,
      // fontSize:Toast 文本的字体大小,这里设置为 16.0
      fontSize: 16.0,
    );
  }

  /// 显示自定义样式 Toast 消息
  /// [msg]:要显示的消息内容
  static void showCustomToast(String msg) {
    // 调用 Fluttertoast 的 showToast 方法显示 Toast
    Fluttertoast.showToast(
      // msg:Toast 显示的消息内容
      msg: msg,
      // toastLength:Toast 显示的时长,Toast.LENGTH_LONG 表示长时间显示
      toastLength: Toast.LENGTH_LONG,
      // gravity:Toast 显示的位置,ToastGravity.CENTER 表示在屏幕中央显示
      gravity: ToastGravity.CENTER,
      // timeInSecForIosWeb:在 iOS 和 Web 平台上 Toast 显示的时间(秒)
      timeInSecForIosWeb: 2,
      // backgroundColor:Toast 的背景颜色,这里设置为蓝色
      backgroundColor: Colors.blue,
      // textColor:Toast 文本的颜色,这里设置为白色
      textColor: Colors.white,
      // fontSize:Toast 文本的字体大小,这里设置为 18.0
      fontSize: 18.0,
    );
  }

  /// 显示错误 Toast 消息
  /// [msg]:要显示的消息内容
  static void showErrorToast(String msg) {
    // 调用 Fluttertoast 的 showToast 方法显示 Toast
    Fluttertoast.showToast(
      // msg:Toast 显示的消息内容
      msg: msg,
      // toastLength:Toast 显示的时长,Toast.LENGTH_SHORT 表示短时间显示
      toastLength: Toast.LENGTH_SHORT,
      // gravity:Toast 显示的位置,ToastGravity.BOTTOM 表示在屏幕底部显示
      gravity: ToastGravity.BOTTOM,
      // timeInSecForIosWeb:在 iOS 和 Web 平台上 Toast 显示的时间(秒)
      timeInSecForIosWeb: 1,
      // backgroundColor:Toast 的背景颜色,这里设置为红色
      backgroundColor: Colors.red,
      // textColor:Toast 文本的颜色,这里设置为白色
      textColor: Colors.white,
      // fontSize:Toast 文本的字体大小,这里设置为 16.0
      fontSize: 16.0,
    );
  }

  /// 取消所有正在显示的 Toast 消息
  static void cancelToast() {
    // 调用 Fluttertoast 的 cancel 方法取消所有正在显示的 Toast
    Fluttertoast.cancel();
  }
}

代码说明

  1. import 语句

    • package:flutter/material.dart:导入 Flutter 的 Material 组件库,提供基本的 UI 组件。

    • package:fluttertoast/fluttertoast.dart:导入 fluttertoast 插件,用于显示 Toast 消息。

  2. ToastUtils

    • 这是一个工具类,封装了常用的 Toast 显示功能,所有方法都是静态方法,可以直接通过类名调用。
  3. showToast 方法

    • 显示一个普通 Toast 消息,参数 msg 是要显示的消息内容。

    • 使用 Fluttertoast.showToast 方法显示 Toast,设置了显示时长、位置、背景颜色、文本颜色和字体大小等参数。

  4. showCustomToast 方法

    • 显示一个自定义样式的 Toast 消息,参数 msg 是要显示的消息内容。

    • showToast 类似,但设置了不同的显示时长、位置和背景颜色。

  5. showErrorToast 方法

    • 显示一个错误 Toast 消息,参数 msg 是要显示的消息内容。

    • 设置了红色背景,表示错误信息。

  6. cancelToast 方法

    • 取消所有正在显示的 Toast 消息,调用 Fluttertoast.cancel() 方法实现。

2、main.dart

Dart 复制代码
import 'package:flutter/material.dart'; // 导入 Flutter 的 Material 组件库

// 导入自定义的 Toast 工具类
import 'package:test_toast/toast/fluttertoast_plugin.dart';

void main() => runApp(MyApp());

// 主应用程序类
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 返回一个 MaterialApp,它是 Flutter 应用的基础组件
    return MaterialApp(
      title: 'Flutter Toast Demo', // 应用的标题
      home: Scaffold( // 应用的主页面,Scaffold 是常用的页面布局组件
        appBar: AppBar( // 应用的导航栏
          title: Text('Flutter Toast Demo'), // 导航栏的标题
        ),
        body: Center( // 页面的主体内容,居中显示
          child: Column( // 使用 Column 垂直布局子组件
            mainAxisAlignment: MainAxisAlignment.center, // 垂直居中对齐
            children: [ // 子组件列表
              // 第一个按钮:显示普通 Toast
              ElevatedButton(
                onPressed: () => ToastUtils.showToast("普通 Toast"), // 按钮点击事件
                child: Text("显示普通 Toast"), // 按钮上的文字
              ),
              SizedBox(height: 20), // 间隔组件,垂直间隔 20 像素
              // 第二个按钮:显示自定义样式 Toast
              ElevatedButton(
                onPressed: () => ToastUtils.showCustomToast("自定义样式 Toast"), // 按钮点击事件
                child: Text("显示自定义样式 Toast"), // 按钮上的文字
              ),
              SizedBox(height: 20), // 间隔组件,垂直间隔 20 像素
              // 第三个按钮:显示错误 Toast
              ElevatedButton(
                onPressed: () => ToastUtils.showErrorToast("错误信息"), // 按钮点击事件
                child: Text("显示错误 Toast"), // 按钮上的文字
              ),
              SizedBox(height: 20), // 间隔组件,垂直间隔 20 像素
              // 第四个按钮:取消所有 Toast
              ElevatedButton(
                onPressed: () => ToastUtils.cancelToast(), // 按钮点击事件
                child: Text("取消所有 Toast"), // 按钮上的文字
              ),
            ],
          ),
        ),
      ),
    );
  }
}

代码说明

  1. import 语句

    • package:flutter/material.dart:导入 Flutter 的 Material 组件库,提供基本的 UI 组件。

    • package:test_toast/toast/fluttertoast_plugin.dart:导入自定义的 Toast 工具类,包含了显示 Toast 的方法。

  2. main 函数

    • 应用的入口点,调用 runApp 方法启动应用,并传入 MyApp 作为根组件。
  3. MyApp

    • 这是一个无状态的 StatelessWidget,定义了应用的根组件。

    • build 方法返回了一个 MaterialApp,它是 Flutter 应用的基础组件。

  4. MaterialApp

    • 它是 Flutter 应用的入口点,提供了路由和主题等功能。

    • title 属性设置了应用的标题。

  5. Scaffold

    • 它是一个页面布局组件,提供了标准的材料设计布局结构。

    • appBar 属性定义了页面的导航栏。

    • body 属性定义了页面的主体内容。

  6. CenterColumn

    • Center 用于将子组件居中显示。

    • Column 是一个垂直布局组件,用于垂直排列子组件。

    • mainAxisAlignment 属性设置了子组件在垂直方向上的对齐方式。

  7. ElevatedButton

    • 它是一个带有阴影的按钮组件。

    • onPressed 属性定义了按钮的点击事件。

    • child 属性定义了按钮上的文字。

  8. SizedBox

    • 它是一个占位组件,用于设置高度或宽度。

    • 在这里用于设置垂直间隔。

相关推荐
LawrenceLan10 小时前
Flutter 零基础入门(九):构造函数、命名构造函数与 this 关键字
开发语言·flutter·dart
一豆羹11 小时前
macOS 环境下 ADB 无线调试连接失败、Protocol Fault 及端口占用的深度排查
flutter
行者9611 小时前
OpenHarmony上Flutter粒子效果组件的深度适配与实践
flutter·交互·harmonyos·鸿蒙
行者9613 小时前
Flutter与OpenHarmony深度集成:数据导出组件的实战优化与性能提升
flutter·harmonyos·鸿蒙
小雨下雨的雨13 小时前
Flutter 框架跨平台鸿蒙开发 —— Row & Column 布局之轴线控制艺术
flutter·华为·交互·harmonyos·鸿蒙系统
小雨下雨的雨14 小时前
Flutter 框架跨平台鸿蒙开发 —— Center 控件之完美居中之道
flutter·ui·华为·harmonyos·鸿蒙
小雨下雨的雨15 小时前
Flutter 框架跨平台鸿蒙开发 —— Icon 控件之图标交互美学
flutter·华为·交互·harmonyos·鸿蒙系统
小雨下雨的雨15 小时前
Flutter 框架跨平台鸿蒙开发 —— Placeholder 控件之布局雏形美学
flutter·ui·华为·harmonyos·鸿蒙系统
行者9615 小时前
OpenHarmony Flutter弹出菜单组件深度实践:从基础到高级的完整指南
flutter·harmonyos·鸿蒙
前端不太难16 小时前
Flutter / RN / iOS,在长期维护下的性能差异本质
flutter·ios