鸿蒙ArkTS | Badge 信息标记组件自学指南

简介: `Badge` 是 HarmonyOS ArkUI 中用于信息标记的容器组件,可附加在图标、按钮或列表项上,提供红点、数字(如 1~99+)或文本(如 "New"、"Hot")等提示功能。支持位置设置与样式自定义,适合状态提醒、消息通知等场景。核心参数包括 `value`(字符串内容)、`count`(数字提醒)、`maxCount`(上限显示)、`position`(位置)和 `style`(样式)。从 API v12 开始,显隐支持 `scale` 动效,提升交互体验。注意 `Badge` 仅包裹单个子组件,不影响其布局结构。

在做 UI 设计时,我们经常会碰到这样一个需求:要在某个图标、按钮或列表项的角落加一个小小的提示,比如红点、新消息数量、状态标签之类的。这时候就轮到 ​​Badge​​ 组件登场了。

如果你想要一个简单优雅、可配置灵活的信息标记功能,​​Badge​​ 就是官方给你的标准答案。


组件简介:Badge 是干什么的?

​Badge​​ 是一个「信息标记容器组件」,可以附加在你指定的任何子组件上,用来做提示提醒,比如:

  • 红点
  • 数字(1~99+)
  • 文本("New"、"Hot")

而且它支持位置设置、样式自定义,还能根据不同的数据类型进行不同展示,非常适合做复杂场景下的状态提示。


基本用法:数字、文本、红点分别怎么玩?

我们直接看代码,分三个小案例逐一拆解。


示例一:红点提示(不显示内容,只显示圆点)

Badge({
  value: '',
  style: {
    badgeSize: 6, // 圆点直径
    badgeColor: '#FA2A2D' // 红点颜色
  }
}) {
  Image('/common/public_icon_off.svg')
    .width(24)
    .height(24)
}

045fb876-3b07-4370-ba22-51bf95e164bf.png

这种场景适合用在有无状态表示,比如有没有新消息、开关状态变更等场合。


示例二:文字提示(显示"New")

Badge({
  value: 'New',
  position: BadgePosition.Right,
  style: {
    badgeSize: 16,
    badgeColor: '#FA2A2D'
  }
}) {
  Text('列表项')
    .fontSize(14)
    .fontColor('#182431')
}

cd816d06-24e9-4201-bfb6-9dfcad40f35d.png

这个就更适合做文字标签,比如「NEW」「HOT」「升级」「试用」等场景,跟着组件一起展示。


示例三:数字提示(显示数量)

Badge({
  count: 88,
  maxCount: 99,
  position: BadgePosition.Right,
  style: {
    badgeSize: 16,
    badgeColor: '#FA2A2D'
  }
}) {
  Image('common/public_icon.svg')
    .width(32)
    .height(32)
}

9a9c46be-910f-4142-ac8a-70aa84da17d0.png

当 ​​count​​​ 超过 ​​maxCount​​​ 后,会自动变成 ​​99+​​,这种设计非常适合社交消息、系统通知等消息类提醒。


核心参数快速解释

参数名 用途 示例
​value​ 传入字符串作为内容 ​'New'​
​count​ 传入数字作为提醒数量 ​88​
​maxCount​ 显示上限,超过显示“+” ​99​
​position​ 标记的位置 ​BadgePosition.RightTop​
​style​ 样式对象,详见下表 ​{ badgeSize: 16, badgeColor: '#FA2A2D' }​

style 对象支持的字段:

  • ​badgeSize​​​: 标记直径(如 ​​16vp​​)
  • ​badgeColor​​: 背景色
  • ​color​​: 字体颜色
  • ​fontSize​​: 文本大小
  • ​fontWeight​​: 字体粗细
  • ​borderColor​​: 边框颜色
  • ​borderWidth​​: 边框宽度

动效说明(API v12+)

从 API v12 开始,Badge 的显隐可以带 ​​scale​​​ 动效,默认开启,不需要额外配置。只要你动态控制 ​​count​​​ 或 ​​value​​,它就能自动执行缩放效果,比如下方这个例子:

@Entry
@Component
struct BadgeExample {
  @State badgeCount: number = 1
  build() {
    Row(){
      Badge({
        count: this.badgeCount,
        style: {},
        position: BadgePosition.RightTop,
      }) {
        Image($r("app.media.startIcon"))
          .width(50)
          .height(50)
      }

      Button('隐藏 Badge').onClick(() => {
        this.badgeCount = 0
      })
      Button('显示 Badge').onClick(() => {
        this.badgeCount = 5
      })
    }

  }
}

​count = 0​​ 时 Badge 会自动隐藏,且带缩放过渡。

2025-05-31 12-57-02.2025-05-31 12_57_18.gif


注意事项

  1. ​Badge​​ 只支持包裹一个子组件(比如图标、文字等);
  2. 你可以动态控制 ​​count​​​ 和 ​​value​​ 来触发显隐;
  3. 对于布局来说,​​Badge​​ 是个装饰性组件,不会影响内部子组件的结构;
  4. ​value: ''​​ 时默认只显示红点,不展示文本;
  5. 不建议对 ​​Badge​​​ 的子组件设置 ​​padding​​ 影响布局,可以用外部容器包一层做空间控制。

使用建议

  • 如果你只想要一个小红点状态提示,用 ​​value: ''​​ 是最省事的;
  • 如果要提示数量,用 ​​count + maxCount​​ 组合;
  • 如果你希望用户明确看到变化,用 ​​scale​​ 动效的显隐可以提升交互感知;
  • 在搭配导航栏、列表项、图标按钮时都非常适用。

结语

Badge 是 HarmonyOS ArkUI 提供的一个非常轻巧但功能强大的提醒类组件,用起来简单但场景应用非常丰富。如果你正在做一个多页面结构、或者内容多状态变化频繁的界面,这个组件一定不要错过。

技术栈标签 HarmonyOS 语言
行业标签 工具效率
目录
相关文章
|
2月前
|
开发者 容器
鸿蒙应用开发从入门到实战(十四):ArkUI组件Column&Row&线性布局
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解Column和Row组件的使用以及线性布局的方法。
250 12
|
2月前
|
API 数据处理
鸿蒙应用开发从入门到实战(十三):ArkUI组件Slider&Progress
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解滑块Slider和进度条Progress组件的使用。
137 1
|
2月前
|
JavaScript 开发者 索引
鸿蒙应用开发从入门到实战(九):ArkTS渲染控制
ArkTS拓展了TypeScript,可以结合ArkUI进行渲染控制,是的界面设计具有可编程性。本文简要描述鸿蒙应用开发中的条件渲染和循环渲染。
140 5
|
2月前
|
数据安全/隐私保护 开发者
鸿蒙应用开发从入门到实战(十一):ArkUI组件Text&TextInput
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解文本组件Text和TextInput的使用。
247 3
|
2月前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
242 1
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
2月前
|
API 数据处理
鸿蒙应用开发从入门到实战(十三):ArkUI组件Slider&Progress
ArkUI提供滑块Slider与进度条Progress组件,用于鸿蒙原生APP开发。Slider支持拖动调节音量、亮度等,可设步长、方向及提示气泡;Progress支持线性、环形等多种样式,可自定义颜色、宽度与刻度,实时显示任务进度。
196 2
|
2月前
|
开发者
鸿蒙应用开发从入门到实战(十二):ArkUI组件Button&Toggle
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解按钮组件Button和Toggle的使用。
249 2
|
2月前
|
JavaScript
鸿蒙应用开发从入门到实战(八):ArkTS自定义组件语法
ArkUI除系统预置的组件外,还支持自定义组件。使用自定义组件,可使代码的结构更加清晰,并且能提高代码的复用性。
155 7
|
2月前
|
存储 编解码 JSON
鸿蒙应用开发从入门到实战(十):ArkUI图片组件Image
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解Image图片组件的使用。
211 1
|
2月前
|
API
鸿蒙应用开发从入门到实战(七):ArkTS组件声明语法
《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战等原创内容、欢迎关注!​本文从界面制作从组件声明开始,通过一个相对简单的案例来系统的学习 ArkTS 声明组件的语法。
109 2

热门文章

最新文章