前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter 应用程序中显示应用程序通知

Flutter 应用程序中显示应用程序通知

作者头像
徐建国
发布2021-11-30 20:21:04
1.7K0
发布2021-11-30 20:21:04
举报
文章被收录于专栏:个人路线个人路线

“在本教程中,我们将介绍如何在 Flutter 应用程序中显示应用程序通知。我们将通过添加overlay_support包开始”

代码语言:javascript
复制
overlay_support: ^1.0.0

要使用 Overlay 功能,我们必须将 Material 应用程序包装在OverlaySupport小部件中。

代码语言:javascript
复制
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return OverlaySupport(
      child: MaterialApp(
          title: 'Flutter Demo',
          home: Scaffold(),
      ),
    );
  }
}

我们将显示对通知覆盖的修改。图书馆还可以做更多的吐司,你可以进入。我们将涵盖:

  1. 自动关闭的基本通知
  2. 修复了带有关闭按钮的通知
  3. 消息样式自定义通知

我们将在脚手架的 FloatingActionButton 中的 onPressed 回调中编写所有代码,因此也进行设置。

代码语言:javascript
复制
 Widget build(BuildContext context) {
    return OverlaySupport(
      ..
      home: Scaffold(
          floatingActionButton: FloatingActionButton(
          onPressed: () {
            // notification code will go here
          },
          )
      ),
    );
  }

基本通知

我们将从基本通知开始。带有一些文本的紫色通知

代码语言:javascript
复制
  showSimpleNotification(
    Text("Subscribe to FilledStacks"),
    background: Colors.purple,
  );
基本通知
基本通知

修复了带有关闭按钮的通知

为了在不自动关闭的情况下保留通知,我们设置autoDismiss为 false。我们不希望通知一直停留在那里,因此我们将构建一个尾随按钮,用户可以点击以关闭它。

代码语言:javascript
复制
  showSimpleNotification(
    Text("Subscribe to FilledStacks"),
    background: Colors.purple,
    autoDismiss: false,
    trailing: Builder(builder: (context) {
      return FlatButton(
          textColor: Colors.yellow,
          onPressed: () {
            OverlaySupportEntry.of(context).dismiss();
          },
          child: Text('Dismiss'));
    }),
  );
固定通知
固定通知

自定义通知

要显示一些自定义 UI,您可以使用该showOverlayNotification功能。它需要一个构建器作为第一个位置参数。我们将返回一个带有一些边距的 Card,我们将把卡片的内容包装在一个 SafeArea 中,因为它会显示在屏幕顶部,凹口可能会干扰。通知的内容将是具有所有属性集的基本 ListTile。

代码语言:javascript
复制
showOverlayNotification((context) {
    return Card(
      margin: const EdgeInsets.symmetric(horizontal: 4),
      child: SafeArea(
        child: ListTile(
          leading: SizedBox.fromSize(
              size: const Size(40, 40),
              child: ClipOval(
                  child: Container(
                color: Colors.black,
              ))),
          title: Text('FilledStacks'),
          subtitle: Text('Thanks for checking out my tutorial'),
          trailing: IconButton(
              icon: Icon(Icons.close),
              onPressed: () {
                OverlaySupportEntry.of(context).dismiss();
              }),
        ),
      ),
    );
  }, duration: Duration(milliseconds: 4000));
基本通知
基本通知

如果您有多个消息要显示,您可以构建一个通知小部件,您可以传入标题和消息。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 坚果前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本通知
  • 修复了带有关闭按钮的通知
  • 自定义通知
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档