发布时间:2026/7/23 9:21:40
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/7/23 9:21:40

From Pixar-Themed Sets to a Myst

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

2026/7/23 9:16:40

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

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

2026/7/23 11:06:46

AIGC内容检测:方法论与工程实践

1. 项目概述:AIGC检测报告的核心价值与争议去年帮某高校期刊审稿时,我连续收到三篇结构高度雷同的计算机视觉论文。引言部分都出现了"近年来,随着深度学习技术的发展"这类标志性句式,实验章节的图表排版风格惊人一致。最…

2026/7/23 11:06:46

AI文本检测与对抗技术:原理与应用实践

1. 项目概述:当写作遇上AI检测去年帮学生改论文时发现个现象:明明是自己熬夜写的初稿,查重软件却显示"AI生成概率87%"。这并非个例,越来越多原创内容被误判为AI产物。千笔降AI率助手就是为解决这个痛点而生——它能智能…

2026/7/23 11:06:46

AI论文查重困境与LexPage低检测率解决方案

1. 论文查重率爆表的真实困境去年我指导的一个研究生差点因为论文查重问题延毕,查重报告里大段标红的"疑似AI生成内容"让他百口莫辩。这绝非个例——Nature最新调查显示,67%的审稿人会对高AIGC率的论文直接拒稿。更棘手的是,传统查…

2026/7/23 11:06:46

BQ28Z610阻抗跟踪算法:从核心原理到RSOC平滑、均衡配置实战

1. 项目概述与核心价值在电池管理系统(BMS)的开发与调试中,最令人头疼的问题莫过于电量计的“跳变”和“不准”。你是否有过这样的经历:设备明明显示还有30%的电,一运行某个高负载应用,电量瞬间掉到10%甚至…

2026/7/23 11:06:46

自适应多步前瞻解码:扩散语言模型的高效加速技术解析

Adaptive Multi-Step Lookahead Decoding:扩散语言模型的高效解码新范式在实际部署扩散语言模型(DLM)进行文本生成时,很多开发者都会遇到一个共同难题:如何在保证生成质量的同时显著提升解码速度?传统自回归…

2026/7/23 11:01:46

89年网安,37岁,真心建议30岁运维去学网安做有提升自我的事

89年网安,37岁,真心建议30岁运维去学网安做有提升自我的事 他叫老陈,做了十几年运维。 每天的生活就是对着告警日志、处理服务器故障,重复的操作做了一遍又一遍,闭着眼都能完成。他以为守着这份 “稳定”&#xff0c…

2026/7/22 9:29:13

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/23 0:01:10

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/22 21:00:12

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…