第一百三十八回 如何在图标旁边添加小红点

本文介绍了在Flutter中使用Badge组件在图标旁边添加小红点的方法,包括基本属性如label、backgroundColor和alignment,以及第三方包Badges提供的额外功能,如响应点击和动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我们在上一章回中介绍了WebView组件相关的内容,本章回中将介绍 如何在图标旁边添加小红点.闲话休提,让我们一起Talk Flutter吧。

概念介绍

在实际项目中有时候需要在图标旁边显示小红点,而且小红点内还有数字,比如购物车图标显示小红点表示有商品添加到购物车中,小红点内的数字就是购物车中商品的数量。本章回中将介绍如何在图标旁边添加小红点。

实现方法

在Android或者IOS原生开发中,如果想实现图标旁边的小红点就需要自定义View。在Flutter中就不需要这么做了,因为官方已经给我们封装了相应的组件:Badge.我们直接拿来使用就可以在图标旁边添加小红点。和其它的组件一样,Badge组件提供了相关的属性来控制自己,下面是常用的属性:

  • label属性:用来控制红点中显示的内容;
  • backgroundColor属性:用来控制红点的颜色,默认是红色;
  • textColor属性:用来控制红点中文字的颜色,默认是白色;
  • alignment属性:用来控制红点的位置,默认传值是topRight;
  • child属性:用来控制红点的宿主,就是说在哪个组件旁边显示红点;

只通过文字介绍这些属性比较抽象,在后面的小节中,我们将通过具体的代码来演示Badge组件的使用方法。

示例代码

Badge(
  ///红点中显示的内容
  label: Text('3'),
  ///默认红底白字
  backgroundColor: Colors.purpleAccent,
  textColor: Colors.green,
  ///红点的位置,默认topRight
  alignment: Alignment.topLeft,
  ///红点的偏移,负值为向左和上,正值为向右和下
  offset: Offset(20.0, -10.0),
  ///在哪个组件右上角显示红点
  child: Icon(Icons.notifications),
)

badges.Badge(
  position: badges.BadgePosition.topEnd(top: -10,end: -15),
  onTap: () => debugPrint('onTap'),
  badgeContent: const Text('3'),
  badgeAnimation: const badges.BadgeAnimation.scale(animationDuration: Duration(seconds: 2)),
  badgeStyle: const badges.BadgeStyle(
    shape: badges.BadgeShape.twitter,
  ),
  child: const Icon(Icons.notifications),
),

在上面的代码中,我们在通知图标上显示了小红点,代码中的关键位置都添加了注释,以方便大家理解。此外,我们在代码中还使用三方包:Badges.该包也可以在图标旁边添加小红点。不过它在Badge组件的基础上做了很多扩展,比如响应点击事件,修改红点的样式,以动画的形式显示红点。上面示例代码中演示了该包的使用方法。

编译并且运行上面的程序,就可以在页面中看到通知图标以及它右上角的小红点。我在这里就不演示程序的运行结果了,建议大家自己动手去实战。

看官们,与"如何在图标旁边添加小红点"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值