news 2026/4/28 8:12:01

HarmonyOS 6 Badge 标记组件使用示例文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 6 Badge 标记组件使用示例文档

文章目录

  • harmonyOS 6 Badge 标记组件使用示例文档
    • 组件介绍
    • 示例代码功能说明
    • 核心API与参数
      • 1. Badge组件构造参数
      • 2. 关键枚举
    • 代码分段解析
      • 1. 红点标记(Tabs标签栏)
      • 2. 文本标记(List列表项)
      • 3. 数字标记(List列表项)
      • 4. 整体布局容器
    • 效果展示
    • 总结

harmonyOS 6 Badge 标记组件使用示例文档

组件介绍

Badge(标记组件)是HarmonyOS ArkTS中用于在UI元素上展示角标、红点、数字/文本提示的容器组件,常用于消息提醒、状态标记等场景(如未读消息数、新功能提示、异常状态红点等)。本文基于示例代码,详细讲解Badge组件的核心使用方式。

示例代码功能说明

本示例代码展示了Badge组件三种典型使用场景:

  1. 红点标记:Tabs标签栏中展示无数字/文本的红点提示;
  2. 文本标记:List列表项中展示“New”文本提示;
  3. 数字标记:List列表项中展示数字计数提示。

核心API与参数

1. Badge组件构造参数

参数名类型说明
valuestring文本类型标记内容(如示例中的"New"),与count互斥
countnumber数字类型标记内容(如示例中的1),与value互斥
positionBadgePosition标记位置,可选值:Right(右侧)、TopRight(右上角,默认)等
styleBadgeStyle标记样式,包含badgeSize(标记尺寸)、badgeColor(标记颜色)等属性

2. 关键枚举

  • BadgePosition:标记位置枚举,示例中使用BadgePosition.Right(右侧);
  • FlexAlign:布局对齐枚举,示例中用于Column的居中对齐;
  • Alignment:组件对齐枚举,示例中用于ListItem的内容对齐。

代码分段解析

1. 红点标记(Tabs标签栏)

@Builder tabBuilder(index: number) { Column() { if (index === 2) { Badge({ value: '', // 空值实现纯红点效果 style: { badgeSize: 6, badgeColor: '#FA2A2D' } // 红点尺寸6px,红色 }) { Image('/common/public_icon_off.svg') .width(24) .height(24) } .width(24) .height(24) .margin({ bottom: 4 }) } else { // 非目标标签,仅展示图标 Image('/common/public_icon_off.svg') .width(24) .height(24) .margin({ bottom: 4 }) } // 标签文本 Text('Tab') .fontColor('#182431') .fontSize(10) .fontWeight(500) .lineHeight(14) }.width('100%').height('100%').justifyContent(FlexAlign.Center) }

说明

  • 通过value: ''设置空文本,结合badgeSize: 6实现小尺寸红点;
  • badgeColor: '#FA2A2D'设置红点为红色(告警色);
  • 仅在第3个Tab(index=2)展示红点,其余Tab仅展示图标。

2. 文本标记(List列表项)

ListItem() { Badge({ value: 'New', // 文本标记内容 position: BadgePosition.Right, // 标记显示在文本右侧 style: { badgeSize: 16, badgeColor: '#FA2A2D' } // 标记尺寸16px,红色 }) { Text('list2').width(27).height(19).fontSize(14).fontColor('#182431') }.width(49.5).height(19) .margin({ left: 12 }) }

说明

  • value: 'New'设置文本标记,用于提示“新内容”;
  • position: BadgePosition.Right指定标记在子组件(Text)右侧;
  • badgeSize: 16适配文本“New”的显示尺寸。

3. 数字标记(List列表项)

ListItem() { Row() { Image('common/public_icon.svg').width(32).height(32).opacity(0.6) Badge({ count: 1, // 数字标记内容 position: BadgePosition.Right, // 标记显示在文本右侧 style: { badgeSize: 16, badgeColor: '#FA2A2D' } // 标记尺寸16px,红色 }) { Text('list2') .width(177) .height(21) .textAlign(TextAlign.Start) .fontColor('#182431') .fontWeight(500) .fontSize(16) .opacity(0.9) }.width(240).height(21).margin({ left: 15, right: 11 }) Image('common/public_icon_arrow_right.svg').width(12).height(24).opacity(0.6) }.width('100%').padding({ left: 12, right: 12 }).height(56) }

说明

  • count: 1设置数字标记,用于提示“1条未读/未处理项”;
  • Badge包裹Text组件,标记跟随文本展示;
  • 结合Row布局,与图标、箭头组成完整的列表项样式。

4. 整体布局容器

build() { Column() { // 红点标记展示区 Text('dotsBadge').fontSize(18).fontColor('#182431').fontWeight(500).margin(24) Tabs() { TabContent().tabBar(this.tabBuilder(0)) TabContent().tabBar(this.tabBuilder(1)) TabContent().tabBar(this.tabBuilder(2)) // 展示红点的Tab TabContent().tabBar(this.tabBuilder(3)) }.width(360).height(56).backgroundColor('#F1F3F5') // 文本/数字标记展示区 Column() { // 文本标记List Text('stringBadge').fontSize(18).fontColor('#182431').fontWeight(500).margin(24) List({ space: 12 }) { ... } // 数字标记List Text('numberBadge').fontSize(18).fontColor('#182431').fontWeight(500).margin(24) List() { ... } }.width('100%').backgroundColor('#F1F3F5').padding({ bottom: 12 }) }.width('100%') }

运行效果如图:

说明

  • 整体采用Column纵向布局,分“红点标记”“文本标记”“数字标记”三个区域;
  • Tabs组件实现标签栏布局,List组件实现列表布局,Badge作为子组件嵌入对应位置。

效果展示

区域效果描述
dotsBadge4个Tab标签栏,第3个Tab图标右上角显示6px红色红点,无文本/数字;
stringBadge列表中第2项“list2”右侧显示16px红色背景的“New”文本标记;
numberBadge列表中第2项“list2”文本右侧显示16px红色背景的数字“1”标记;

总结

  1. value与count互斥:Badge组件同时只能设置value(文本)或count(数字),不可同时设置;
  2. 尺寸适配badgeSize需根据标记内容调整(如文本“New”需16px以上,红点可设6-8px);
  3. 布局约束:Badge包裹的子组件需设置明确的宽高,避免标记位置偏移;
  4. 样式统一:示例中统一使用#FA2A2D(红色)作为标记颜色,符合移动端告警/提示的视觉规范。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 8:09:24

AI应用开发脚手架:从零构建工程化AI项目的完整指南

1. 项目概述:AI应用开发的“脚手架”革命最近几年,AI应用开发的热度居高不下,但很多开发者,包括我自己,都踩过同一个坑:从零开始搭建一个AI应用,远不止调用一个API那么简单。你需要考虑项目结构…

作者头像 李华
网站建设 2026/4/28 8:08:36

终极指南:3步轻松解锁QQ音乐加密音频,让无损音乐自由播放

终极指南:3步轻松解锁QQ音乐加密音频,让无损音乐自由播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&am…

作者头像 李华
网站建设 2026/4/28 8:07:40

NCM格式终结者:5分钟快速掌握ncmdump终极解密技巧

NCM格式终结者:5分钟快速掌握ncmdump终极解密技巧 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM加密文件无法在其他设备播放而烦恼吗?ncmdump作为一款高效专业的NCM格式转换工具&…

作者头像 李华
网站建设 2026/4/28 8:07:38

Phi-3.5-Mini-Instruct企业应用:研发团队代码审查与Bug解释自动化实践

Phi-3.5-Mini-Instruct企业应用:研发团队代码审查与Bug解释自动化实践 1. 引言:代码审查的痛点与AI解决方案 在软件开发过程中,代码审查是保证质量的关键环节,但传统人工审查面临诸多挑战: 效率瓶颈:资深…

作者头像 李华
网站建设 2026/4/28 8:06:35

ViGEmBus虚拟手柄驱动:Windows游戏手柄模拟终极解决方案

ViGEmBus虚拟手柄驱动:Windows游戏手柄模拟终极解决方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是一款Windows内核级虚拟手柄驱…

作者头像 李华