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

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 个原则:

  1. 位置明确:放在标题行右侧,与标题并列
  2. 视觉区分:使用浅色背景 + 橙色文字,与标题区分
  3. 文案清晰+ 记录明确表示“添加“操作
  4. 内联样式:紧凑的内边距,不占用过多空间
  5. 操作引导:点击后弹出添加表单,引导用户操作

8.2 萌宠日记添加按钮总结

设计要素说明
文案+ 记录加号 + 动词
字号13fp小号
文字色#F5A623品牌橙色
背景色#FFF3E0浅橙
圆角16vp胶囊形
位置标题行右侧与标题并列

总结

本文从萌宠日记添加记录按钮实现出发,深入解析了内联标签按钮的完整设计:

  1. 按钮样式:内联标签风格,浅橙背景 + 橙色文字
  2. 位置布局:标题行右侧,Blank() 弹性占位
  3. 添加流程:点击弹出添加面板
  4. 数据处理:添加新记录到列表头部
  5. 交互反馈:点击涟漪效果
  6. 无障碍适配:accessibilityText 描述

下一篇我们将深入查看更多交互,解析健康记录页中“查看更多“链接的实现。

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


相关资源:

  • Button 组件:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-button
  • AlertDialog 对话框:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-methods-alert-dialog-box
  • TextInput 组件: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
http://www.jsqmd.com/news/1242613/

相关文章:

  • AI语音配音选型决策树,9类学科场景+7项音色参数+4维评估模型(独家教研级评测框架)
  • ReceiptLine语法详解:列对齐、文本样式与特殊字符处理技巧
  • 急周转速变现!长沙劳力士、欧米茄手表紧急回收,15分钟全款到账攻略 - 逸程奢侈品回收中心
  • 靠谱GEO服务商怎么选?2026高性价比服务商推荐与避坑FAQ - 资讯速览
  • 深入解析I2C总线协议与F2837xD模块配置及调试技巧
  • 二手车精准估值 API 新手接入与实战指南
  • vllm中提取Inkling FA4 Relative Attention算子基础的base优化版本
  • 短剧 / 短视频 / 影视分镜三赛道 AI 工具横评:分层选型实测数据报告
  • Moonshine核心功能全解析:隔离会话、HDR支持与硬件编码如何提升游戏串流体验
  • 智能体开发,基础信息梳理
  • Jellium Desktop网络带宽限制设置:控制最大下载速度的完整指南
  • 2026年蓝牙AOA高精度室内定位开发费用解析及品牌选择参考 - 全域品牌推荐
  • 深入解析TI C2000 eHRPWM:斩波器与故障保护模块实战指南
  • 为什么你的AI内容总输在起跑线?——揭秘头部账号隐藏的3类训练数据源、5层内容分层策略及24小时更新机制
  • 【Runway面部替换生产力革命】:用1台MacBook Pro+本地LoRA微调管线,将单次替换耗时从42分钟压缩至93秒(附全流程Benchmark数据表)
  • 解锁Sonoff智能设备的双模控制:无需刷机的Home Assistant集成方案
  • Go语言的context.WithTimeout超时
  • Python毕设选题推荐:基于Python的日常饮食管理与健康膳食指导信息系统 个性化营养膳食搭配推荐管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 2026年西安别墅装修公司推荐:统筹与交付怎么选 - 科技焦点
  • 深度解析:为什么一定要学Linux安全?零基础系统学习完整教程
  • ZDZL团队2026年扩招计划:算法与系统架构岗位详解
  • TMS320F2837xD USB与uPP外设中断与DMA配置实战解析
  • 秘塔AI学术范围限定失效的6类典型陷阱(含BERT层权重偏差分析),资深研究员亲授避坑清单
  • AI写作情感内容正在遭遇“信任悬崖”(2024Q2行业白皮书预警:76%读者已启动情感真实性检测本能)
  • 终极指南:如何在Mac上完美安装Microsoft Office并优化性能
  • 2026成都黄金回收行业“公开金价”诚信示范单位揭晓:这六家门店全程透明零费用 - 二奢分享官
  • 深入解析TI C2000 CLB寄存器与Driverlib映射:从硬件原理到工程实践
  • 鸿蒙 ArkTS 实战:Coffee Brew Timer 从咖啡萃取计时到咖啡冲煮应用完整解析
  • 2026年7月最新雅典上海北外滩来福士维修保养服务电话 - 亨得利钟表维修中心
  • AutoMdxBuilder:零基础打造专业电子词典的终极指南