Flutter通知提示插件flashy_flushbar的使用

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

Flutter通知提示插件flashy_flushbar的使用

codecov

Flashy Flushbar

一个高度可定制、可取消且带有动画效果的Flushbar(Toast)插件,适用于Flutter应用程序。

特性

  • 可通过多种选项自定义外观。
  • 带有动画效果的进入和退出过渡。
  • 支持可取消的Flushbar。
  • 可以轻松地通过编程方式显示和隐藏Flushbar。

安装

在您的pubspec.yaml文件中添加以下依赖:

dependencies:
  flashy_flushbar: ^1.0.0

然后运行:

flutter pub get

使用

在Dart代码中导入该包:

import 'package:flashy_flushbar/flashy_flushbar.dart';

为了使上下文可用,请在MaterialAppbuilder中指定FlashyFlushbarProvider

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
      // 这里
      builder: FlashyFlushbarProvider.init(),
    );
  }
}

现在你可以在Flutter应用中使用FlashyFlushbar。以下是一个基本示例:

FlashyFlushbar(
  leadingWidget: const Icon(
    Icons.error_outline,
    color: Colors.black,
    size: 24,
  ),
  message: 'Hello from Flashy Flushbar',
  duration: const Duration(seconds: 1),
  trailingWidget: IconButton(
    icon: const Icon(
      Icons.close,
      color: Colors.black,
      size: 24,
    ),
    onPressed: () {
      FlashyFlushbar.cancel();
    },
  ),
  isDismissible: false,
).show();

要取消最后一个显示的Flushbar:

FlashyFlushbar.cancel();

要取消所有活动的Flushbar:

FlashyFlushbar.cancelAll();

示例

以下是一个完整的示例代码,展示了如何在Flutter应用中使用FlashyFlushbar

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      builder: FlashyFlushbarProvider.init(),
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Flashy Flushbar Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 显示一个简单的FlashyFlushbar
              FlashyFlushbar(
                leadingWidget: const Icon(
                  Icons.error_outline,
                  color: Colors.black,
                  size: 24,
                ),
                message: 'Hello, Flashy Flushbar!',
                duration: const Duration(seconds: 3),
                backgroundColor: Colors.green,
                trailingWidget: IconButton(
                  icon: const Icon(
                    Icons.close,
                    color: Colors.black,
                    size: 24,
                  ),
                  onPressed: () {
                    FlashyFlushbar.cancel();
                  },
                ),
                boxShadows: const [
                  BoxShadow(
                      color: Colors.blue, blurRadius: 4.0, spreadRadius: 2.0),
                ],
              ).show(context);

              // 显示不可取消的FlashyFlushbar
              FlashyFlushbar(
                message: 'You can dismiss this!',
                duration: const Duration(seconds: 3),
                dismissDirection: DismissDirection.horizontal,
                isDismissible: false,
              ).show(context);

              // 延迟2秒后取消最后一个显示的Flushbar
              Future.delayed(const Duration(seconds: 2), () {
                FlashyFlushbar.cancel();
              });
            },
            child: const Text('Show Flashy Flushbar'),
          ),
        ),
      ),
    );
  }
}

在这个示例中,点击按钮会显示两个不同的FlashyFlushbar,并且会在2秒后自动取消最后一个显示的FlashyFlushbar


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

1 回复

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


当然,下面是一个关于如何在Flutter项目中使用flashy_flushbar插件来实现通知提示的示例代码。flashy_flushbar是一个流行的Flutter包,用于显示美观且可自定义的通知提示。

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

dependencies:
  flutter:
    sdk: flutter
  flashy_flushbar: ^2.0.0  # 请检查最新版本号

然后运行flutter pub get来安装依赖。

接下来,你可以在你的Flutter应用中导入并使用flashy_flushbar。以下是一个完整的示例,展示了如何在一个简单的Flutter应用中显示Flushbar通知。

import 'package:flutter/material.dart';
import 'package:flashy_flushbar/flashy_flushbar.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(),
    );
  }
}

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

class _MyHomePageState extends State<MyHomePage> {
  final FlushbarService _flushbarService = FlushbarService();

  void _showFlushbar() {
    var flushbar = Flushbar<bool>(
      message: "这是一个通知提示!",
      duration: Duration(seconds: 3),
      leftBarIndicatorColor: Colors.blue,
      icon: Icon(
        Icons.info_outline,
        color: Colors.blueAccent,
      ),
      primaryAction: FlushbarAction(
        text: "确定",
        onPressed: () {
          flushbar?.close(true);
        },
      ),
    );

    // 使用 FlushbarController 来显示和控制 Flushbar
    var controller = _flushbarService.showFlushbar(
      context: context,
      flushbarPosition: FlushbarPosition.TOP,
      flushbar: flushbar,
    );

    // 你也可以稍后使用 controller 来控制 Flushbar,例如关闭它
    // Future.delayed(Duration(seconds: 2), () => controller?.close(false));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _showFlushbar,
          child: Text('显示通知'),
        ),
      ),
    );
  }
}

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

  1. pubspec.yaml文件中添加了flashy_flushbar依赖。
  2. 在主应用类中,创建了一个简单的Flutter应用,其中包含一个按钮。
  3. 在按钮的点击事件中,我们创建了一个Flushbar实例,并设置了消息、持续时间、左侧指示器颜色、图标和主要操作(按钮)。
  4. 使用FlushbarService来显示FlushbarFlushbarService提供了一个简单的方法来在应用的任何位置显示和控制Flushbar

这个示例展示了如何使用flashy_flushbar来显示一个基本的通知提示。你可以根据需要进一步自定义Flushbar的外观和行为。

回到顶部