月统计面板:日记数 + 连续天数 + 主要心情

前言

在"海风日记"的日历页底部,月统计面板展示了本月日记数、连续天数和主要心情三项数据,为用户提供了直观的写作统计。

本文将从源码出发,深入讲解统计面板的实现。


一、月统计面板实现

1.1 源码

typescript 复制代码
Row({ space: 16 }) {
  Column({ space: 4 }) {
    Text(MOCK_DIARIES.length.toString())
      .fontSize(22).fontColor(COLOR_PRIMARY).fontWeight(FontWeight.Bold)
    Text('本月日记').fontSize(11).fontColor(COLOR_TEXT_SECONDARY)
  }.layoutWeight(1).alignItems(HorizontalAlign.Center)

  Divider().vertical(true).height(30).color(COLOR_DIVIDER)

  Column({ space: 4 }) {
    Text('7').fontSize(22).fontColor(COLOR_AMBER).fontWeight(FontWeight.Bold)
    Text('连续天数').fontSize(11).fontColor(COLOR_TEXT_SECONDARY)
  }.layoutWeight(1).alignItems(HorizontalAlign.Center)

  Divider().vertical(true).height(30).color(COLOR_DIVIDER)

  Column({ space: 4 }) {
    Text('😊').fontSize(22)
    Text('主要心情').fontSize(11).fontColor(COLOR_TEXT_SECONDARY)
  }.layoutWeight(1).alignItems(HorizontalAlign.Center)
}

1.2 布局分析

复制代码
┌──────────────┬──────────────┬──────────────┐
│  20          │   7          │   😊         │
│  本月日记    │  连续天数    │  主要心情    │
└──────────────┴──────────────┴──────────────┘

二、年视图的统计面板

typescript 复制代码
Row({ space: 0 }) {
  Column({ space: 4 }) {
    Text(MOCK_DIARIES.length.toString())
      .fontSize(24).fontColor(COLOR_PRIMARY).fontWeight(FontWeight.Bold)
    Text('今年日记').fontSize(11).fontColor(COLOR_TEXT_SECONDARY)
  }.layoutWeight(1).alignItems(HorizontalAlign.Center)

  Column({ space: 4 }) {
    Text('7').fontSize(24).fontColor(COLOR_AMBER).fontWeight(FontWeight.Bold)
    Text('最长连续').fontSize(11).fontColor(COLOR_TEXT_SECONDARY)
  }.layoutWeight(1).alignItems(HorizontalAlign.Center)

  Column({ space: 4 }) {
    Text('😊').fontSize(24)
    Text('最常心情').fontSize(11).fontColor(COLOR_TEXT_SECONDARY)
  }.layoutWeight(1).alignItems(HorizontalAlign.Center)
}

三、垂直 Divider 使用

typescript 复制代码
Divider().vertical(true).height(30).color(COLOR_DIVIDER)

vertical(true) 将 Divider 从水平分隔线变为垂直分隔线。


四、常见问题

4.1 统计数字不更新

问题:添加日记后,统计数字没有变化。

原因:统计数字是静态 Mock 数据。

解决方案 :使用 @State 变量,数据变化时自动更新。


总结

本文通过"海风日记"的月统计面板,深入讲解了统计数据的展示:

  1. 三项数据:日记数、连续天数、主要心情
  2. 垂直 Divider:分隔统计项
  3. 年视图统计:今年日记、最长连续、最常心情

下一篇文章将深入讲解 CalendarYearPage 年视图,敬请期待。

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


相关资源:

相关推荐
codeGoogle1 天前
自研 IM 还是选择第三方 SDK?企业开发者应该如何权衡?
前端·后端·程序员
DLYSB_1 天前
API 网关流量洪峰与突发 CC 攻击:我用 Go 写了个“现场物理防御哨兵”,把故障响应压缩到秒级
开发语言·后端·golang·报警灯
markinmarkin1 天前
Spring 中Bean 的作用域有哪些?
java·后端·spring
橙子家1 天前
使用方法 ToDictionary() 来优化查询时间复杂度:O(N*M) -> O(1*M)【C# 基础】
后端
IT_陈寒1 天前
我又被JavaScript的隐式类型转换坑了
前端·人工智能·后端
用户8356290780511 天前
Python Word 转 PDF 和 PDF 转 Word 指南
后端·python
用户8356290780511 天前
如何使用 Python 加密和保护 Word 文档
后端·python
他们叫我秃子1 天前
前端开发转 Go 全栈(五):终于遇到熟人了,Go 的闭包和高阶函数原来这么像 JavaScript
前端·后端·go
SomeB1oody1 天前
【RustyML入门】2.6. 线性判别分析
开发语言·后端·机器学习·rust·教程
妙码生花1 天前
从 PHP 到 AI + Golang,程序员自救转型手记(五十七):AI时代对组件封装的新理解、agInput 统一入口,动态表单预备
前端·后端·go