qs_toast 1.0.0 copy "qs_toast: ^1.0.0" to clipboard
qs_toast: ^1.0.0 copied to clipboard

一个依赖flutter_easyloading的Toast插件

qs_toast #

qs_toast 是一个基于 flutter_easyloading 封装的 Flutter Toast 插件,用于快速显示加载、文本、成功、错误提示,并支持手动关闭弹窗。

功能 #

  • 显示加载中弹窗
  • 显示普通文本 Toast
  • 显示成功 Toast
  • 显示错误 Toast
  • 手动关闭当前弹窗
  • 支持设置遮罩类型、显示时长和关闭回调

安装 #

在项目的 pubspec.yaml 中添加依赖:

dependencies:
  qs_toast: ^1.0.0

如果使用本地路径依赖:

dependencies:
  qs_toast:
    path: ../qs_toast

然后执行:

flutter pub get

初始化 #

使用前需要在 MaterialAppbuilder 中调用 QsToast.init()

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

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      builder: QsToast.init(),
      home: const HomePage(),
    );
  }
}

如果你的项目已经有自定义 builder,可以传入原有的 builder

MaterialApp(
  builder: QsToast.init(
    builder: (context, child) {
      return MediaQuery(
        data: MediaQuery.of(context),
        child: child ?? const SizedBox.shrink(),
      );
    },
  ),
  home: const HomePage(),
);

使用方法 #

显示加载中 #

await QsToast.loading(text: '加载中...');

设置最长显示时间,超时后自动关闭:

await QsToast.loading(
  text: '提交中...',
  longestTime: 10,
  dismissAction: () {
    // 加载弹窗自动关闭后的回调
  },
);

显示文本提示 #

await QsToast.text(text: '操作已完成');

自定义显示时长:

await QsToast.text(
  text: '保存成功',
  duration: const Duration(seconds: 2),
);

显示成功提示 #

await QsToast.success(text: '提交成功');

显示错误提示 #

await QsToast.error(text: '提交失败,请稍后再试');

关闭弹窗 #

await QsToast.dismiss();

关闭后执行回调:

await QsToast.dismiss(
  dismissAction: () {
    // 弹窗关闭后的回调
  },
);

参数说明 #

方法 参数 类型 默认值 说明
loading text String? null 加载提示文案
loading longestTime int? null 最长显示时间,单位为秒
loading maskType EasyLoadingMaskType EasyLoadingMaskType.black 遮罩类型
loading dismissAction VoidCallback? null 自动关闭后的回调
text text String 必填 文本提示文案
text duration Duration Duration(seconds: 1) 显示时长
success text String 必填 成功提示文案
error text String 必填 错误提示文案
dismiss animation bool true 关闭时是否显示动画
dismiss dismissAction VoidCallback? null 关闭后的回调

maskType 来自 flutter_easyloading,如需使用其他遮罩类型,可以引入:

import 'package:flutter_easyloading/flutter_easyloading.dart';

示例:

await QsToast.success(
  text: '保存成功',
  maskType: EasyLoadingMaskType.clear,
);

完整示例 #

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

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      builder: QsToast.init(),
      home: const HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('qs_toast 示例')),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            ElevatedButton(
              onPressed: () {
                QsToast.loading(text: '加载中...', longestTime: 5);
              },
              child: const Text('显示加载'),
            ),
            ElevatedButton(
              onPressed: () {
                QsToast.success(text: '操作成功');
              },
              child: const Text('显示成功'),
            ),
            ElevatedButton(
              onPressed: () {
                QsToast.error(text: '操作失败');
              },
              child: const Text('显示错误'),
            ),
            ElevatedButton(
              onPressed: () {
                QsToast.dismiss();
              },
              child: const Text('关闭弹窗'),
            ),
          ],
        ),
      ),
    );
  }
}

平台支持 #

当前插件工程包含 Android 和 iOS 平台配置。

许可 #

本项目使用 LICENSE 文件中声明的许可证。

0
likes
125
points
99
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

一个依赖flutter_easyloading的Toast插件

Homepage

License

unknown (license)

Dependencies

flutter, flutter_easyloading, plugin_platform_interface

More

Packages that depend on qs_toast

Packages that implement qs_toast