HarmonyOS应用开发实战:萌宠日记 - 添加记录按钮设计
HarmonyOS应用开发实战萌宠日记 - 添加记录按钮设计前言添加记录按钮是健康记录页中触发新增数据的核心操作入口。在萌宠日记的 HealthRecordPage 中添加按钮采用内联标签样式使用 记录文字 橙色主题色放置在记录列表标题行右侧与标题形成清晰的操作引导。本文将从萌宠日记中添加记录按钮的设计与实现出发深入解析内联标签按钮的样式设计、位置布局、交互反馈以及添加记录的完整流程。一、添加按钮设计1.1 按钮样式// HealthRecordPage.ets — 添加记录按钮 Button( 记录) .fontSize(13) // 小字号 .fontColor(#F5A623) // 品牌橙色文字 .backgroundColor(#FFF3E0) // 浅橙色背景 .borderRadius(16) // 胶囊形圆角 .padding({ left: 12, right: 12, top: 4, bottom: 4 }) // 内边距 .onClick(() { this.showAddRecordDialog() // 点击弹出添加面板 })1.2 按钮参数参数值说明文字 记录加号 动词明确操作字号13fp小号与标题层级区分文字色#F5A623品牌橙色背景色#FFF3E0浅橙与文字色同色系圆角16vp胶囊形柔和内边距左右 12vp上下 4vp紧凑二、按钮位置布局2.1 标题行布局Row() { Text(记录列表) .fontSize(16) .fontWeight(FontWeight.Bold) .fontColor(#333333) Blank() Button( 记录) .fontSize(13) .fontColor(#F5A623) .backgroundColor(#FFF3E0) .borderRadius(16) .padding({ left: 12, right: 12, top: 4, bottom: 4 }) } .width(100%)2.2 布局结构┌─────────────────────────────────────┐ │ 记录列表 [ 记录] │ │ ← 标题权重高 → ← 按钮操作 → │ └─────────────────────────────────────┘三、按钮样式设计3.1 内联标签样式// 内联标签按钮风格 Button( 记录) .fontSize(13) .fontColor(#F5A623) .backgroundColor(#FFF3E0) .borderRadius(16) .padding({ left: 12, right: 12, top: 4, bottom: 4 })3.2 按钮样式对比对比维度内联标签按钮普通按钮字号13fp15-18fp背景色浅色实色圆角16vp20vp内边距紧凑宽松适用场景标题行内底部操作栏四、添加记录流程4.1 弹出添加面板// 显示添加记录对话框 showAddRecordDialog(): void { AlertDialog.show({ title: 添加体重记录, message: 请输入体重值, primaryButton: { value: 取消, action: () {} }, secondaryButton: { value: 保存, action: () { this.addWeightRecord(2024-05-05, 4.5, 正常) } } }) }4.2 自定义添加面板// 自定义添加记录面板替代 AlertDialog State showAddPanel: boolean false // 添加面板 if (this.showAddPanel) { Column() { Text(添加记录) .fontSize(18).fontWeight(FontWeight.Bold) // 体重输入 TextInput({ placeholder: 请输入体重 (kg) }) .width(100%).height(44) .backgroundColor(#F5F5F5).borderRadius(8) // 日期选择 Text(2024-05-05) .fontSize(14).fontColor(#333333) // 保存按钮 Button(保存) .width(100%).height(44) .backgroundColor(#F5A623).borderRadius(22) .fontColor(Color.White) .onClick(() { this.addWeightRecord() this.showAddPanel false }) } .width(100%) .padding(24) .backgroundColor(#FFFFFF) .borderRadius(16) .shadow({ radius: 8, color: #20000000, offsetY: 4 }) }五、添加记录的数据处理5.1 添加逻辑// 添加体重记录 addWeightRecord(): void { const newRecord: WeightRecord { date: this.getCurrentDate(), weight: ${this.weightValue} kg, status: this.getWeightStatus(this.weightValue), statusColor: this.getStatusColor(this.weightValue) } // 插入到列表头部 this.weightRecords [newRecord, ...this.weightRecords] } // 获取当前日期 getCurrentDate(): string { const now new Date() return ${now.getFullYear()}-${String(now.getMonth() 1).padStart(2, 0)}-${String(now.getDate()).padStart(2, 0)} }六、按钮交互反馈6.1 点击反馈Button( 记录) .fontSize(13) .fontColor(#F5A623) .backgroundColor(#FFF3E0) .borderRadius(16) .clickEffect({ level: ClickEffectLevel.LIGHT }) .onClick(() { this.showAddRecordDialog() })七、按钮的无障碍Button( 记录) .fontSize(13) .fontColor(#F5A623) .backgroundColor(#FFF3E0) .borderRadius(16) .accessibilityText(添加体重记录)八、最佳实践8.1 添加按钮设计原则有序列表 — 添加按钮设计的 5 个原则位置明确放在标题行右侧与标题并列视觉区分使用浅色背景 橙色文字与标题区分文案清晰 记录明确表示“添加“操作内联样式紧凑的内边距不占用过多空间操作引导点击后弹出添加表单引导用户操作8.2 萌宠日记添加按钮总结设计要素值说明文案 记录加号 动词字号13fp小号文字色#F5A623品牌橙色背景色#FFF3E0浅橙圆角16vp胶囊形位置标题行右侧与标题并列总结本文从萌宠日记的添加记录按钮实现出发深入解析了内联标签按钮的完整设计按钮样式内联标签风格浅橙背景 橙色文字位置布局标题行右侧Blank() 弹性占位添加流程点击弹出添加面板数据处理添加新记录到列表头部交互反馈点击涟漪效果无障碍适配accessibilityText 描述下一篇我们将深入查看更多交互解析健康记录页中“查看更多“链接的实现。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源Button 组件https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-buttonAlertDialog 对话框https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-methods-alert-dialog-boxTextInput 组件https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-textinput点击效果https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-click-effect数据持久化https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-data-persistence无障碍开发https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/accessibility-kit交互反馈https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/interaction-feedback表单设计https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/form-design

相关新闻

AI编程如何重构事件驱动架构?揭秘头部科技公司正在悄悄使用的3层智能编排模型

AI编程如何重构事件驱动架构?揭秘头部科技公司正在悄悄使用的3层智能编排模型

更多请点击: https://codechina.net 第一章:AI编程如何重构事件驱动架构? 传统事件驱动架构(EDA)依赖预定义的事件契约、静态路由规则和人工编排的消费者逻辑,面对动态业务语义、多模态输入与实时意图推断…

2026/10/20 9:31:43 阅读更多 →
Widevine L3 Guesser:如何用智能破解技术重新定义流媒体安全边界?

Widevine L3 Guesser:如何用智能破解技术重新定义流媒体安全边界?

Widevine L3 Guesser:如何用智能破解技术重新定义流媒体安全边界? 【免费下载链接】widevine-l3-guesser 项目地址: https://gitcode.com/gh_mirrors/wi/widevine-l3-guesser 在数字版权管理(DRM)技术领域,Wid…

2026/10/19 21:50:39 阅读更多 →
AI搜索框架怎么选?2024最新Benchmark实测TOP7框架响应延迟、召回率、扩展性三维对比(附选型决策矩阵)

AI搜索框架怎么选?2024最新Benchmark实测TOP7框架响应延迟、召回率、扩展性三维对比(附选型决策矩阵)

更多请点击: https://kaifayun.com 第一章:AI搜索框架选型参考 在构建现代AI驱动的搜索系统时,框架选型直接影响语义理解能力、响应延迟、可扩展性与工程落地成本。当前主流方案可分为三类:轻量级嵌入服务框架、端到端检索增强生…

2026/10/19 6:48:57 阅读更多 →

最新新闻

Linux磁盘分区实战:从fdisk到fstab的完整指南

Linux磁盘分区实战:从fdisk到fstab的完整指南

1. 磁盘分区到底在解决什么问题很多人第一次接触 Linux 磁盘管理,都是在装系统那一刻。安装器弹出一个界面,问你要不要“自动分区”,你点了“是”,然后一路下一步,系统装好了,分区这件事就被抛到脑后。直到…

2026/10/20 14:35:47 阅读更多 →
WordPress自定义Word导入格式映射:三路径与PHP实现

WordPress自定义Word导入格式映射:三路径与PHP实现

"WordPress开发者如何自定义Word导入的格式映射规则?",说实话,遇到这个需求的开发者大多是被默认行为逼到这一步的。我在好几个内容迁移项目里都撞过同一堵墙:客户给一堆排版精致的Word文档,要求原样搬到站点…

2026/10/20 14:35:47 阅读更多 →
Matlab-MIC工具箱:工程级互信息计算与非线性依赖分析

Matlab-MIC工具箱:工程级互信息计算与非线性依赖分析

简介:Matlab-MIC工具箱是一套面向计算成像、反问题求解与数值优化领域的MATLAB开源实现,适用于高校研究生、科研人员及工程技术人员开展迭代重建与全局优化算法研究。资源聚焦Kaczmarz、ART、SIRT等经典代数重建方法,以及CG、LM等梯度类优化算…

2026/10/20 14:35:47 阅读更多 →
本地部署DeepSeek R1:Ollama+Chatbox完整教程与调优指南

本地部署DeepSeek R1:Ollama+Chatbox完整教程与调优指南

去年年底开始,不少朋友陆续问我:“你本地跑的那个 AI 是什么?看起来挺强的。”我说是本地化的 DeepSeek R1,配 Ollama 做模型管理,再用 Chatbox 做对话界面。整套组合下来,不需要云端账号,不需要…

2026/10/20 14:35:47 阅读更多 →
Scrapy集成Selenium:高效爬取豆瓣TOP250评论数据的实战方案

Scrapy集成Selenium:高效爬取豆瓣TOP250评论数据的实战方案

Scrapy 结合 Selenium 爬取豆瓣 TOP250 电影的评论数据,这个标题我第一眼看到的时候,心里就想,这兄弟八成是被豆瓣的反爬折腾过。因为但凡你只是想抓个电影列表,那纯 Scrapy 不到十分钟就能写完,根本不需要动用 Seleni…

2026/10/20 14:35:47 阅读更多 →
OSG项目GIF插件编译失败怎么办?giflib 4.1.6 64位静态库接入与避坑指南

OSG项目GIF插件编译失败怎么办?giflib 4.1.6 64位静态库接入与避坑指南

简介:面向需要在 OpenSceneGraph 3.2.1 中启用 GIF 插件编译的开发者,这份资源提供 giflib 4.1.6 的 64 位静态链接库及配套头文件,可解决 osg 的 Plugin gif 链接依赖问题,省去自行构建 giflib 的环节。压缩包共 3 个文件&#x…

2026/10/20 14:34:30 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/20 9:50:45 阅读更多 →