HarmonyOS开发实战:小分享-CategoryIcon组件封装与图标徽章复用

发布时间:2026/9/14 19:51:02

HarmonyOS开发实战:小分享-CategoryIcon组件封装与图标徽章复用 前言CategoryIcon是小分享 App 中可复用的图标徽章组件用于展示分类图标。通过 Component 和 Prop 封装可在多个页面中复用。本篇讲解图标徽章组件的封装技巧。详细 API 可参考 HarmonyOS Component 官方文档。一、CategoryIcon 组件Component export struct CategoryIcon { Prop icon: string ; Prop bgColor: string #EEF4FF; Prop size: number 48; build() { Column() { Text(this.icon) .fontSize(this.size * 0.5) } .width(this.size) .height(this.size) .backgroundColor(this.bgColor) .borderRadius(this.size * 0.25) .justifyContent(FlexAlign.Center) .alignItems(HorizontalAlign.Center) } }二、使用示例CategoryIcon({ icon: , bgColor: #EEF4FF, size: 48 })三、组件设计原则3.1 参数化设计属性类型默认值说明iconstring‘’图标 EmojibgColorstring‘#EEF4FF’背景色sizenumber48尺寸3.2 响应式计算.fontSize(this.size * 0.5) // 字号 尺寸 × 0.5 .borderRadius(this.size * 0.25) // 圆角 尺寸 × 0.25四、本文核心知识点4.1 组件封装核心要点Component Prop 封装参数化设计设置默认值响应式计算字号和圆角4.2 实战开发要点尺寸参数化支持不同场景默认值避免组件独立使用时出错响应式计算提升适配性附录CategoryIcon 组件的完整实现细节1. 完整的组件代码Component export struct CategoryIcon { Prop icon: string ; Prop bgColor: string #EEF4FF; Prop size: number 48; build() { Column() { Text(this.icon).fontSize(this.size * 0.5) } .width(this.size) .height(this.size) .backgroundColor(this.bgColor) .borderRadius(this.size * 0.25) .justifyContent(FlexAlign.Center) .alignItems(HorizontalAlign.Center) } }2. 参数化设计属性类型默认值说明iconstring‘’图标 EmojibgColorstring‘#EEF4FF’背景色sizenumber48尺寸宽高3. 响应式计算.fontSize(this.size * 0.5) // 字号 尺寸 × 0.5 .borderRadius(this.size * 0.25) // 圆角 尺寸 × 0.254. 使用示例CategoryIcon({ icon: , bgColor: #EEF4FF, size: 48 }) CategoryIcon({ icon: ️, bgColor: #E8F5E9, size: 40 }) CategoryIcon({ icon: , bgColor: #E3F2FD, size: 56 })5. 完整代码文件索引文件路径说明components/CategoryIcon.ets图标徽章组件6. 实现要点总结CategoryIcon 组件核心要点Component Prop封装可复用的图标徽章组件参数化设计icon、bgColor、size 三个参数响应式计算字号和圆角根据 size 自动计算7. 总结本文详细讲解了 CategoryIcon 图标徽章组件的封装涵盖 Component、Prop、参数化设计等核心知识点。相关资源HarmonyOS Component 官方文档Component ReferenceHarmonyOS Prop 装饰器Prop GuideHarmonyOS 组件封装Component EncapsulationHarmonyOS Builder 装饰器Builder GuideHarmonyOS borderRadius 属性BorderRadiusHarmonyOS Column 组件Column ComponentHarmonyOS Text 组件Text Reference开源鸿蒙跨平台社区https://openharmonycrossplatform.csdn.net本文涉及的所有 API 索引API类别用途Column布局容器垂直排列子组件Row布局容器水平排列子组件Text基础组件显示文本ForEach渲染控制循环渲染列表State装饰器组件内状态管理Builder装饰器封装可复用 UI 片段router.pushUrl路由页面跳转router.back路由返回上一页总结本文详细讲解了小分享 App 中对应页面的完整实现。核心知识点涵盖布局容器、组件封装、状态管理、路由跳转等关键技术。通过本文的学习读者可以掌握 HarmonyOS ArkUI 声明式开发的核心技能并能够独立实现类似的页面功能。14. 页面功能总结功能模块实现方式核心组件组件封装Component Prop参数化设计图标徽章Column 容器borderRadius 响应式计算参数传递Prop 装饰器icon/bgColor/size默认值函数参数默认值组件独立可用15. 完整的代码结构CategoryIcon (Component) ├── Prop icon: string ├── Prop bgColor: string #EEF4FF ├── Prop size: number 48 └── build() └── Column (size × size) ├── backgroundColor(bgColor) ├── borderRadius(size × 0.25) └── Text(icon) └── fontSize(size × 0.5)16. 组件使用方法// 基本使用 CategoryIcon({ icon: , bgColor: #EEF4FF, size: 48 }) // 自定义尺寸 CategoryIcon({ icon: ️, bgColor: #E8F5E9, size: 40 }) // 使用默认值 CategoryIcon({ icon: })17. 本文涉及的所有 APIAPI/组件用途文档链接Component组件声明ComponentProp属性传递PropColumn列容器ColumnText文本组件TextborderRadius圆角BorderRadiusjustifyContent主轴对齐FlexAlignalignItems交叉轴对齐FlexAlign18. 实现要点总结CategoryIcon 组件核心要点Component Prop封装可复用的图标徽章组件参数化设计icon、bgColor、size 三个参数均有默认值响应式计算字号和圆角根据 size 自动计算无需手动设置居中布局justifyContent(Center)alignItems(Center)居中默认值bgColor默认#EEF4FFsize默认 4819. 总结本文详细讲解了 CategoryIcon 图标徽章组件的封装涵盖 Component、Prop、参数化设计等核心知识点。组件封装是提升代码复用率的关键手段良好的参数化设计可以让组件在不同场景下灵活使用。导航与路由 Router API 深入20. 完整代码文件索引文件路径说明components/CategoryIcon.ets图标徽章组件21. 本文涉及的所有 APIAPI/组件用途文档链接Component组件声明ComponentProp属性传递PropColumn列容器ColumnText文本组件TextborderRadius圆角BorderRadiusjustifyContent主轴对齐FlexAlignalignItems交叉轴对齐FlexAlign22. 实现要点总结CategoryIcon 组件核心要点Component Prop封装可复用的图标徽章组件参数化设计icon、bgColor、size 三个参数均有默认值响应式计算字号和圆角根据 size 自动计算居中布局justifyContent(Center)alignItems(Center)默认值bgColor默认#EEF4FFsize默认 4823. 总结本文详细讲解了 CategoryIcon 图标徽章组件的封装涵盖 Component、Prop、参数化设计等核心知识点。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力
延伸阅读

更多相关文章

2026/9/12 19:58:24

From Pixar-Themed Sets to a Myst

迪士尼Lorcana背靠整个迪士尼角色库,在集换式卡牌游戏中拥有独特优势。外媒IGN近日整理了Ravensburger已公布的2026年产品计划,从年初的冬季系列到10月的《寻梦环游记》扩展,路线图逐渐清晰,但下半年仍有待填补的空白。 【Winter…

2026/9/11 21:50:16

【软工作业思考】关于软工的一些概念性理解暨第一次阅读

概述 项目 内容 本次作业所属课程 2019BUAA软件工程 周二班 本次作业要求 第1次个人作业 当然,比这个更重要百倍的还是实实在在的思考,这也是标题如此命名的原因 我在本课程的目标 在原有实践经验的基础上,系统化学习软工领域的理论知识&…

2026/9/14 19:50:22

SPIRAL框架解析:轻量级Web组件开发实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 19:50:22

日语MV中文字幕制作全流程与技术要点

我无法根据当前输入生成符合要求的博文。原因如下:项目标题“【中字】高桥优—CANDY”属于音乐视频类内容,指向一首日语歌曲的中文字幕版发布;项目正文为空,无任何功能性描述、技术细节、操作过程或创作背景;关键词与摘…

2026/9/14 19:50:22

音视频处理技术入门:FFmpeg基础操作与实战场景

我无法基于“Rufus Wainwright - Going To A Town (Official Music Video) 2007”这一纯音乐视频标题生成符合你所设定的技术类项目博文规范的内容。原因如下:该标题明确指向一首2007年发布的官方音乐视频,属于文化内容/数字媒体资产范畴,而非…

2026/9/14 19:50:22

Java学习语法篇:键盘录入

1. 引言在Java程序开发中,键盘录入是程序与用户交互最基础、最常用的方式之一。无论是控制台小工具、命令行应用,还是学习阶段的练习程序,都离不开从键盘读取用户输入。掌握键盘录入技术,是每个Java初学者必须跨越的第一道门槛。本…

2026/9/14 19:50:22

DFS与BFS:图遍历的两大核心算法

1. 深度优先搜索(DFS)1.1 DFS 的原理深度优先搜索的核心思想是“一条路走到黑”。从起始顶点出发,沿着一条路径一直往下走,直到无法继续前进时,再回退到上一个分岔口,选择另一条路径继续探索。这个过程很像…

2026/9/14 19:45:22

企业数字化转型的挑战与破局之道

1. 数字化转型的现状与挑战 过去十年间,数字化转型已经从企业的可选项变成了必选项。根据麦肯锡最新研究显示,85%的企业已经启动数字化项目,但仅有30%能实现预期效益。这种落差背后,是大多数组织在转型过程中遇到的系统性障碍。 …

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码