前言在“海风日记“的回顾页中当用户还没有日记数据时会显示空数据状态引导用户去写日记。本文将从源码出发深入讲解回顾页的空数据 UI 设计。一、回顾页空数据状态1.1 源码if (MOCK_DIARIES.length 0) { Column({ space: 12 }) { Text().fontSize(48).margin({ top: 60 }) Text(还没有数据哦) .fontSize(17).fontColor(COLOR_TEXT_MAIN).fontWeight(FontWeight.Bold) .margin({ top: 12 }) Text(写几篇日记后这里会展示你的\n写作统计和情绪趋势) .fontSize(14).fontColor(COLOR_TEXT_HINT) .textAlign(TextAlign.Center).lineHeight(22) .padding({ left: 32, right: 32 }) Button(去写日记) .height(44).fontSize(15).fontColor(#FFFFFF).fontWeight(FontWeight.Bold) .backgroundColor(COLOR_PRIMARY).borderRadius(22) .padding({ left: 28, right: 28 }).margin({ top: 24 }) .onClick(() router.pushUrl({ url: pages/diary/WriteDiaryPage })) } .width(100%).alignItems(HorizontalAlign.Center).layoutWeight(1) }二、多场景空状态对比页面emoji标题描述按钮首页还没有日记哦记录今天的心情…写第一篇日记回顾还没有数据哦写几篇日记后…去写日记日历这个月还没有日记点击下方 记录…无标签️还没有标签添加标签可以帮你…输入框搜索没有找到相关内容换个关键词试试吧无三、布局特点Column({ space: 12 }) { Text().fontSize(48).margin({ top: 60 }) // emoji Text(标题).fontSize(17) // 标题 Text(描述).fontSize(14) // 描述 Button(去写日记) // 按钮 } .width(100%).alignItems(HorizontalAlign.Center) .layoutWeight(1)四、常见问题4.1 空状态与数据列表重叠问题空状态和数据列表同时显示。原因if/else 条件判断中缺少 else 分支。解决方案使用 if/else 确保互斥显示。总结本文通过“海风日记“回顾页的空数据状态深入讲解了空状态 UI 设计emoji 视觉元素标题提示文字描述引导文字按钮行动引导多场景差异不同页面不同设计下一篇文章将深入讲解MoodDataItem 接口设计敬请期待。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源Button 组件文档Text 组件文档Router 路由文档海风日记项目源码[HarmonyOS 开发者官网](https://atomgit.com/openharmony/docs开源鸿蒙跨平台社区