Flutter轻量级提示插件flutter_hot_toast的使用

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

Flutter轻量级提示插件flutter_hot_toast的使用

Flutter Hot Toast 是一个非常酷且简单的提示插件,灵感来源于 React Hot Toast。它提供了多种类型的提示,如加载中、成功、失败等。

特性

Video preview

开始使用

首先需要将 GlobalLoaderOverlay 包裹在你的 MaterialApp 外层:

import 'package:flutter/material.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:flutter_hot_toast/flutter_hot_toast.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GlobalLoaderOverlay(
      child: MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: const Home(),
      ),
    );
  }
}

class Home extends StatelessWidget {
  const Home({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Hot Toast Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            FloatingActionButton(
              child: const Icon(Icons.add),
              onPressed: () {
                context.loaderOverlay.show(
                  widget: FlutterHotToast.loading(
                    height: 70,
                    width: 280,
                    label: const Text(
                      'loading...😬',
                      style: TextStyle(
                        fontSize: 30,
                      ),
                    ),
                  ),
                );
                Future.delayed(const Duration(seconds: 2), () {
                  context.loaderOverlay.hide();
                  context.loaderOverlay.show(
                    widget: FlutterHotToast.success(
                      context,
                      height: 70,
                      width: 280,
                      label: const Text(
                        'success ✅',
                        style: TextStyle(
                          fontSize: 30,
                        ),
                      ),
                    ),
                  );
                });
              },
            ),
          ],
        ),
      ),
    );
  }
}

显示提示

你可以通过以下方式在任何被 MaterialApp 包裹的小部件中调用提示显示:

context.loaderOverlay.show(
  widget: FlutterHotToast.loading(
    height: 70,
    width: 280,
    label: const Text(
      'loading...😬',
      style: TextStyle(
        fontSize: 30,
      ),
    ),
  ),
);

使用示例

下面是一个完整的示例,展示了如何使用这个插件来显示加载和成功的提示:

FloatingActionButton(
  child: const Icon(Icons.add),
  onPressed: () {
    context.loaderOverlay.show(
      widget: FlutterHotToast.loading(
        height: 70,
        width: 280,
        label: const Text(
          'loading...😬',
          style: TextStyle(
            fontSize: 30,
          ),
        ),
      ),
    );
    Future.delayed(const Duration(seconds: 2), () {
      context.loaderOverlay.hide();
      context.loaderOverlay.show(
        widget: FlutterHotToast.success(
          context,
          height: 70,
          width: 280,
          label: const Text(
            'success ✅',
            style: TextStyle(
              fontSize: 30,
            ),
          ),
        ),
      );
    });
  },
)

更多关于Flutter轻量级提示插件flutter_hot_toast的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter轻量级提示插件flutter_hot_toast的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用flutter_hot_toast插件的示例代码。flutter_hot_toast是一个轻量级的提示插件,允许你轻松地在应用中显示Toast消息。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  flutter_hot_toast: ^2.0.0  # 请确保使用最新版本

然后运行flutter pub get来获取依赖。

2. 初始化插件

在你的应用的主入口文件(通常是main.dart)中,初始化FlutterHotToast插件。虽然这个插件不需要显式初始化就可以在大多数情况下工作,但按照官方文档初始化可以确保一些额外的配置生效。

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

void main() {
  // 初始化FlutterHotToast(可选,但推荐)
  FlutterHotToast.init(context);
  runApp(MyApp());
}

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

3. 使用Toast消息

现在你可以在任何地方使用FlutterHotToast来显示Toast消息。以下是一些示例:

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

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Hot Toast Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () {
                // 显示简单的Toast消息
                FlutterHotToast.showToast(
                  msg: "Hello, this is a simple toast!",
                  toastLength: Toast.LENGTH_SHORT,
                  gravity: ToastGravity.BOTTOM,
                  backgroundColor: Colors.black,
                  textColor: Colors.white,
                  fontSize: 16.0,
                );
              },
              child: Text('Show Simple Toast'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 显示带有图标的Toast消息
                FlutterHotToast.showToast(
                  msg: "This toast has an icon!",
                  image: Image.asset('assets/icon.png'), // 确保你有这个图标资源
                  toastLength: Toast.LENGTH_LONG,
                  gravity: ToastGravity.CENTER,
                  backgroundColor: Colors.blue,
                  textColor: Colors.white,
                  fontSize: 16.0,
                );
              },
              child: Text('Show Toast with Icon'),
            ),
          ],
        ),
      ),
    );
  }
}

4. 运行应用

确保你已经按照上述步骤正确配置了代码,然后运行你的Flutter应用。点击按钮时,你应该会看到相应的Toast消息。

这个示例展示了如何使用flutter_hot_toast插件来显示简单的Toast消息以及带有图标的Toast消息。你可以根据需要进一步自定义Toast消息的样式和行为。

回到顶部