日视图:全天日程与待办区改为浮动固定,最多显示3条可展开 #68

Closed
opened 2026-11-05 08:15:53 +00:00 by laoyang · 1 comment
Owner

背景

用户反馈:打开日视图时,全天日程/待办排在时间轴最前面,
但时间轴会自动滚到当前时刻(比如下午16点),导致全天日程被滚上去看不见了。

需求

  1. 全天日程 + 待办区改为浮动固定:贴在"11月5日 星期四"日期行下方,
    下方的日程时间轴怎么滚,它都保持不动。
  2. 最多显示 3 条(全天日程 + 待办合计 3 条),
    超出部分显示向下小箭头,点击展开/收起。

折中原因

用户自己指出:如果全天日程和待办很多,浮动固定会盖住一大片视野,
不上滑就一直挡着。所以限制 3 条 + 可展开,是折中方案。

验收标准

  • 日期行下方有固定区,滚动时间轴时它不动
  • 全天日程 + 待办合计最多显示 3 条
  • 超过 3 条时出现向下箭头,点击展开全部
  • 展开后箭头变成向上,可收起
  • 无全天/待办时不显示这个区

为什么单独建单

全天/待办区浮动固定+折叠展开是新的交互需求,与 #45 待办投射(只是显示待办)不同,是布局结构改造

## 背景 用户反馈:打开日视图时,全天日程/待办排在时间轴最前面, 但时间轴会自动滚到当前时刻(比如下午16点),导致全天日程被滚上去看不见了。 ## 需求 1. **全天日程 + 待办区改为浮动固定**:贴在"11月5日 星期四"日期行下方, 下方的日程时间轴怎么滚,它都保持不动。 2. **最多显示 3 条**(全天日程 + 待办合计 3 条), 超出部分显示向下小箭头,点击展开/收起。 ## 折中原因 用户自己指出:如果全天日程和待办很多,浮动固定会盖住一大片视野, 不上滑就一直挡着。所以限制 3 条 + 可展开,是折中方案。 ## 验收标准 - 日期行下方有固定区,滚动时间轴时它不动 - 全天日程 + 待办合计最多显示 3 条 - 超过 3 条时出现向下箭头,点击展开全部 - 展开后箭头变成向上,可收起 - 无全天/待办时不显示这个区 --- ### 为什么单独建单 全天/待办区浮动固定+折叠展开是新的交互需求,与 #45 待办投射(只是显示待办)不同,是布局结构改造
Author
Owner

验收记录

提交:2c56574

改了什么

结构:待办区 + 全天/跨天区从 Scroll { timelineBody() } 内部移到 Scroll 之外,
让它们固定不滚;Scroll 里只剩时间轴本体。

改进后的布局:

Column {
  topBar()                   ← 固定(待办 + 全天,最多3条)
  Scroll { timelineBody() }  ← 只滚时间轴
}

折叠:

  • 待办 + 全天合并成一个列表(避免两块各3条变6条)
  • 折叠时最多 3 条
  • 超出显示「还有 N 条 ⌄」,点击变「收起 ⌃」

顺带修:allDayH 从滚动偏移里去掉(该区已不在 Scroll 内),
否则自动定位到当前时刻时会多偏一整个固定区高度。

为什么用 Column 而非 Stack 叠浮

你说"浮动",我实现成 Column 顺序布局:固定区占位、时间轴在其下。
这样不会被内容遮挡(你担心的"盖住视野"),视觉上同样是贴着日期下方不动。
如果用 Stack 叠浮,时间轴会被压在下面,反而更难用。

怎么验的(真机 5NC0225B27004718)

造了 4 条今天截止的测试待办(测完已删),合计 6 条:

验证项 实测
固定区位置 日期行 y=707 下方:783 / 871 / 958
折叠生效 只显示前 3 条,第4条隐藏
合并计数 「还有 3 条」(6-3)
箭头 [595,1030] ⌄
点击展开 6 条全显示,变「收起 ⌃」
时间轴 11:00 从 y=1104 开始,未被遮挡
## 验收记录 提交:`2c56574` ### 改了什么 **结构**:待办区 + 全天/跨天区从 `Scroll { timelineBody() }` 内部移到 **Scroll 之外**, 让它们固定不滚;Scroll 里只剩时间轴本体。 改进后的布局: ``` Column { topBar() ← 固定(待办 + 全天,最多3条) Scroll { timelineBody() } ← 只滚时间轴 } ``` **折叠**: - 待办 + 全天**合并**成一个列表(避免两块各3条变6条) - 折叠时最多 3 条 - 超出显示「还有 N 条 ⌄」,点击变「收起 ⌃」 **顺带修**:`allDayH` 从滚动偏移里去掉(该区已不在 Scroll 内), 否则自动定位到当前时刻时会多偏一整个固定区高度。 ### 为什么用 Column 而非 Stack 叠浮 你说"浮动",我实现成 Column 顺序布局:固定区占位、时间轴在其下。 这样**不会被内容遮挡**(你担心的"盖住视野"),视觉上同样是贴着日期下方不动。 如果用 Stack 叠浮,时间轴会被压在下面,反而更难用。 ### 怎么验的(真机 5NC0225B27004718) 造了 4 条今天截止的测试待办(测完已删),合计 6 条: | 验证项 | 实测 | |---|---| | 固定区位置 | 日期行 y=707 下方:783 / 871 / 958 | | 折叠生效 | 只显示前 3 条,第4条隐藏 | | 合并计数 | 「还有 3 条」(6-3) | | 箭头 | `[595,1030] ⌄` | | 点击展开 | 6 条全显示,变「收起 ⌃」 | | 时间轴 | 11:00 从 y=1104 开始,未被遮挡 |
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: laoyang/FamilyBook#68