Flutter轻量级通知提示插件flutter_toastr的使用

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

Flutter轻量级通知提示插件flutter_toastr的使用

flutter_toastr 是一个用于在 Flutter 应用中显示非阻塞通知的插件。你可以自定义通知的位置和持续时间。

安装

使用命令行安装

flutter pub add flutter_toastr

pubspec.yaml 文件中添加依赖

dependencies:
  flutter_toastr: ^1.0.3

基本用法

在你的 Dart 文件中导入 flutter_toastr 包,并调用 FlutterToastr.show 方法来显示通知。

import 'package:flutter_toastr/flutter_toastr.dart';

// 显示一个短时间的通知,位置在底部
FlutterToastr.show("这是一个短时间的通知", context, duration: FlutterToastr.lengthShort, position: FlutterToastr.bottom);

示例代码

以下是一个完整的示例代码,展示了如何在不同的位置和持续时间内显示通知。

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

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

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

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, this.title}) : super(key: key);
  final String? title;

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyHomePage> {
  void _showToast(String msg, {int? duration, int? position}) {
    FlutterToastr.show(msg, context, duration: duration, position: position);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Toastr for non-blocking notifications'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Padding(
              padding: const EdgeInsets.all(10.0),
              child: ElevatedButton(
                child: Text('Show Short Toastr'),
                onPressed: () => _showToast("Show Short Toastr"),
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(10.0),
              child: ElevatedButton(
                child: Text('Show Long Toastr'),
                onPressed: () => _showToast("Show Long Toastr", duration: FlutterToastr.lengthLong),
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(10.0),
              child: ElevatedButton(
                child: Text('Show Bottom Toastr'),
                onPressed: () => _showToast("Show Bottom Toastr", position: FlutterToastr.bottom),
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(10.0),
              child: ElevatedButton(
                child: Text('Show Center Toastr'),
                onPressed: () => _showToast("Show Center Toastr", position: FlutterToastr.center),
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(10.0),
              child: ElevatedButton(
                child: Text('Show Top Toastr'),
                onPressed: () => _showToast("Show Top Toastr", position: FlutterToastr.top),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

解释

  1. 导入包:首先在 Dart 文件中导入 flutter_toastr 包。
  2. 定义 _showToast 方法:该方法用于显示通知,接受消息、持续时间和位置作为参数。
  3. 创建按钮:在 build 方法中创建多个按钮,每个按钮点击时会调用 _showToast 方法并传入不同的参数。
  4. 显示通知:通过调用 FlutterToastr.show 方法显示通知,可以设置消息内容、持续时间和位置。

通过以上步骤,你可以在 Flutter 应用中轻松地使用 flutter_toastr 插件来显示非阻塞通知。


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

1 回复

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


当然,下面是一个关于如何使用 flutter_toastr 插件的简单示例代码,这个插件可以用来在 Flutter 应用中显示轻量级的通知提示。

首先,确保你已经在 pubspec.yaml 文件中添加了 flutter_toastr 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_toastr: ^3.0.0  # 请使用最新版本号

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

接下来,在你的 Flutter 应用中实现 flutter_toastr。以下是一个完整的示例,展示了如何在按钮点击时显示一个通知提示。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Toastr Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final FlutterToastr _toastr = FlutterToastr();

  @override
  void initState() {
    super.initState();
    // 初始化 FlutterToastr
    _initToastr();
  }

  @override
  void dispose() {
    // 释放 FlutterToastr 资源
    _toastr.dispose();
    super.dispose();
  }

  void _initToastr() {
    final BuildContext context = context;
    _toastr.init(context,
        position: ToastPosition.bottom,
        animation: ToastAnimation.slideFromBottom,
        backgroundColor: Colors.black45,
        textColor: Colors.white,
        duration: ToastDuration.lengthLong,
        radius: 20.0);
  }

  void _showToast() {
    _toastr.showToast(
        msg: "This is a toast notification!",
        toastLength: Toast.LENGTH_SHORT,
        gravity: ToastGravity.BOTTOM,
        timeInSecForIosWeb: 1,
        backgroundColor: Colors.blue,
        textColor: Colors.white,
        fontSize: 16.0);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Toastr Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _showToast,
          child: Text('Show Toast'),
        ),
      ),
    );
  }
}

在这个示例中,我们做了以下几件事:

  1. 依赖添加:在 pubspec.yaml 文件中添加了 flutter_toastr 依赖。
  2. 初始化:在 _MyHomePageStateinitState 方法中初始化了 FlutterToastr,并配置了位置、动画、背景颜色、文字颜色等参数。
  3. 显示通知:定义了一个 _showToast 方法,该方法在按钮点击时被调用,显示一个通知提示。
  4. 资源释放:在 dispose 方法中释放了 FlutterToastr 资源,以避免内存泄漏。

运行这个示例应用,点击按钮后,你应该会在屏幕底部看到一个蓝色的通知提示。这个插件还支持更多自定义选项,比如不同的动画效果、持续时间、位置等,你可以根据需要进一步配置。

回到顶部