搜索插件、代码仓与 APP 分类

fluttertoast 封面
插件详情v10.0.2

fluttertoast

Flutter 的 Toast 库,只需一行代码即可轻松创建吐司消息

AndroidiOSWeb
近 30 天下载
64.2万
喜欢数
4140
Pub 分数
140

安装插件

flutter pub add fluttertoast

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

FlutterToast 是一个轻量级的 Flutter 包,可让开发者仅用一行代码即可轻松显示 Toast 消息。它提供了一种简单且一致的方式,在 Android、iOS 和 Web 平台上显示临时通知。该库支持自定义消息的外观、位置和持续时间,非常适合在应用中提供用户反馈。凭借易于使用的 API 和积极的维护,FlutterToast 通过提供微妙且不干扰用户的提示来提升用户体验。

适合场景

  • 显示成功或错误消息
  • 显示快速用户反馈
  • 通知用户已采取的操作
  • 提供状态更新
  • 增强用户界面的响应能力

主要特点

  • 单行吐司创建
  • 可自定义的消息样式
  • 跨平台支持
  • 可配置的持续时间和位置
  • 简单的 API,设置简单

适合对象

  • 初学者Flutter开发者
  • 需要快速反馈的应用
  • 轻量级通知系统
  • 依赖最少的项目
  • 无复杂性的用户界面增强

使用建议

  • 限于基本的吐司设计
  • 无高级动画选项
  • 依赖外部仓库
  • 不适用于持久通知
  • 可能需要手动处理边缘情况

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

fluttertoast

Toast Library for Flutter

Build Checks

Now this toast library supports two kinds of toast messages one which requires BuildContext other with No BuildContext

Toast with no context

Supported Platforms

This one has limited features and no control over UI

Toast Which requires BuildContext

Supported Platforms

  • ALL
  1. Full Control of the Toast
  2. Toasts will be queued
  3. Remove a toast
  4. Clear the queue

How to Use

# add this line to your dependencies
fluttertoast: ^10.0.0
import 'package:fluttertoast/fluttertoast.dart';

Toast with No Build Context (Android & iOS)

Fluttertoast.showToast(
        msg: "This is Center Short Toast",
        toastLength: Toast.LENGTH_SHORT,
        gravity: ToastGravity.CENTER,
        timeInSecForIosWeb: 1,
        backgroundColor: Colors.red,
        textColor: Colors.white,
        fontSize: 16.0
    );
property description default
msg String (Not Null)(required) required
toastLength Toast.LENGTH_SHORT or Toast.LENGTH_LONG (optional) Toast.LENGTH_SHORT
gravity ToastGravity.TOP (or) ToastGravity.CENTER (or) ToastGravity.BOTTOM (Web Only supports top, bottom) ToastGravity.BOTTOM
timeInSecForIosWeb int (for ios & web) 1 (sec)
backgroundColor Colors.red null
textcolor Colors.white null
fontSize 16.0 (float) null
fontAsset Path to a font file in the Flutter app assets folder, e.g. 'assets/path/to/some-font.ttf' (String) null
webShowClose false (bool) false
webBgColor String (hex Color) linear-gradient(to right, #00b09b, #96c93d)
webPosition String (left, center or right) right
To cancel all the toasts call
Fluttertoast.cancel()
Note Android

Custom Toast will not work on android 11 and above, it will only use msg and toastLength remaining all properties are ignored

Custom Toast For Android

Create a file named toast_custom.xml in your project app/res/layout folder and do custom styling

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginStart="50dp"
    android:background="@drawable/corner"
    android:layout_marginEnd="50dp">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#CC000000"
        android:paddingStart="16dp"
        android:paddingTop="10dp"
        android:paddingEnd="16dp"
        android:paddingBottom="10dp"
        android:textStyle="bold"
        android:textColor="#FFFFFF"
        tools:text="Toast should be short." />
</FrameLayout>

Toast with BuildContext (All Platforms)

Update your MaterialApp with builder like below for the use of Context globally check doc section Use NavigatorKey for Context(to access context globally)

MaterialApp(
    builder: FToastBuilder(),
    home: MyApp(),
    navigatorKey: navigatorKey,
),
FToast fToast;

@override
void initState() {
    super.initState();
    fToast = FToast();
    // if you want to use context from globally instead of content we need to pass navigatorKey.currentContext!
    fToast.init(context);
}

_showToast() {
    Widget toast = Container(
        padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 12.0),
        decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(25.0),
        color: Colors.greenAccent,
        ),
        child: Row(
        mainAxisSize: MainAxisSize.min,
        children: [
            Icon(Icons.check),
            SizedBox(
            width: 12.0,
            ),
            Text("This is a Custom Toast"),
        ],
        ),
    );


    fToast.showToast(
        child: toast,
        gravity: ToastGravity.BOTTOM,
        toastDuration: Duration(seconds: 2),
    );

    // Custom Toast Position
    fToast.showToast(
        child: toast,
        toastDuration: Duration(seconds: 2),
        positionedToastBuilder: (context, child) {
          return Positioned(
            child: child,
            top: 16.0,
            left: 16.0,
          );
        });
}

Now Call _showToast()

For more details check example project

property description default
child Widget (Not Null)(required) required
toastDuration Duration (optional)
gravity ToastGravity.*
positionedToastBuilder PositionedToastBuilder
fadeDuration Duration Duration(milliseconds: 350)
ignorePointer boolean false
isDismissible boolean false
Use NavigatorKey for Context(to access context globally)

To use NavigatorKey for Context first define the GlobalKey<NavigatorState> at top level in your main.dart file

GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();

At the time of initializing the FToast we need to use context from globally defined GlobalKey<NavigatorState>

FToast fToast = FToast();
fToast.init(yourNavKey.currentContext!);
To cancel all the toasts call
// To remove present shwoing toast
fToast.removeCustomToast()

// To clear the queue
fToast.removeQueuedCustomToasts();

Preview Images (No BuildContext)

Preview Images (BuildContext)

If you need any features suggest

...

Buy Me a Coffee

Buy Me A Coffee

所属分类

依赖

依赖清单 1 项

  • web>=1.0.0 <2.0.0

源码仓库

使用此插件的项目