当前位置: 首页 > news >正文

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(红色)作为标记颜色,符合移动端告警/提示的视觉规范。

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

http://www.jsqmd.com/news/712870/

相关文章:

  • SmolFactory:极简模块化生产力工具的设计与实践
  • 204B介绍及应用
  • NVIDIA Nemotron-CC-Math数据集提升LLM数学能力训练效果
  • 13本书带你从零基础小白精通大模型,2026最新的大模型书籍都在这里!
  • Windows暂停更新工具
  • AI客服是做什么的?这套PHP源码系统讲清楚了:多模态+人工转接
  • 终极Windows系统清理解决方案:用WindowsCleaner告别C盘爆红和系统卡顿
  • GPT-SoVITS新手避坑指南:常见问题与解决方案汇总
  • NVIDIA Profile Inspector终极指南:5个简单技巧解锁显卡隐藏性能
  • XUnity.AutoTranslator:如何用5个步骤实现Unity游戏实时翻译
  • 体育用品包装设计公司哪家专业靠谱?首选哲仕品牌策略设计公司 - 设计调研者
  • AI应用开发脚手架:从零构建工程化AI项目的完整指南
  • 别急着手动展开循环!聊聊GCC/Clang的-O3优化和#pragma unroll的真实关系
  • SOCD Cleaner终极指南:如何一键解决游戏按键冲突问题
  • C盘爆红终结者:WindowsCleaner如何用3步魔法拯救你的电脑
  • 如何快速掌握SketchUp STL插件:从3D建模到3D打印的完整指南
  • HarmonyOS 6 Badge 组件自定义外描边和文本延伸方向使用示例文档
  • NCM文件快速免费转换终极指南:ncmdump让网易云音乐自由播放
  • Codeforces Round 1094 Div. 1 + Div. 2(A~F)
  • AutoQ-VIS:无监督视频实例分割的质量引导自训练框架
  • intodns:终端里的DNS与邮件安全自动化审计工具
  • 2026年3招降AI实操指南:亲测AI率降至10%以下,附免费降AI率工具(建议收藏) - 降AI实验室
  • Jasminum终极指南:3步解决Zotero中文文献管理的核心痛点
  • 2026年市面AI一键生成简历哪个好用?
  • YOLOv13涨点改进| AAAI 2026 |全网独家创新、Conv卷积改进篇|引入MECM记忆专家补偿模块,通过多个专家和记忆库的联合作用,助力YOLOv13小目标检测,图像分割,图像增强高效涨点
  • 爱普生TX720wd,L4168,L4153,Artisan725,TX725,TX820,L558,L555,L565,L805,L3556打印机中的废墨垫已到使用寿命,亲测有用
  • 深入解析KeymouseGo:跨平台鼠标键盘自动化脚本录制与执行的专业指南
  • 别再死记硬背了!用这个‘色环电阻速查表’和口诀,3秒读出阻值(附高清图)
  • 基于VIBE模型实现视频3D人体姿态估计:从原理到实战部署
  • 辽宁省CPPM官方报名中心授权机构及联系方式(官方正规报名通道) - 中供国培