laoyang
8cc28c6d53
fix(日视图): 列表视图待办区渲染问题——尝试记录(未解决)
## 用户反馈
"刚才显示两遍的时候,你是能做出来的呀。显示两遍的时候,箭头是正常的。"
确认:重复渲染时(提交 2c56574),列表视图的待办区**能正常显示**,
只是显示了两份。删掉重复那次调用后,剩下那次就渲染不出来。
## 已尝试的 8 种方案(全部失败)
1. 放在根 Column 第一位(无条件)→ 不渲染
2. `if (this.scrollable)` 包裹根位置 → 不渲染
3. 放进 timelineBody 内部(Row 之前)→ 不渲染
4. 放在 else 分支(timelineBody 之前)→ 不渲染
5. 新建 AgendaTopBar 独立 @Component 放在 DayTimelineView 外层 → 不渲染
6. `flexShrink(0)` 包裹 → 不渲染
7. `clip(false)` 让内容不被裁剪 → 不渲染
8. build 根节点加 Column 包裹 → 不渲染
9. topBar 加 render 参数(双调用位 + 条件渲染)→ 不渲染
## 诊断结论(矛盾点)
- `onAppear` / `onAreaChange` 都确认被调用,且 `h=57.76`(有高度!)
- `todos=2`(数据存在)
- 但 `uitest dumpLayout` 里搜不到任何 topBar 节点,整页只有 44 个文字节点
- 时间轴 y 起点始终是 407,从不为 topBar 让位
**有高度、有数据、组件被调用,但 UI 树里没有节点。**
这个组合说明调度/绘制层出了问题,而非单纯布局计算。
## 当前代码状态
`DayTimelineView.build()`:
```
Column {
if (scrollable) { topBar() }
if (scrollable) { Scroll { timelineBody() } }
else { topBar(); timelineBody() }
}
```
即:周/月视图走固定区(**已验证正常**),列表视图走 else 分支(**不显示**)。
## 影响面
- 周/月视图:功能完好(#68 已验收)
- 列表视图:待办/全天区缺失,但不崩、不重复
## 下一步建议
需要单独一轮、用最小复现工程定位 ArkUI 的 @Builder 在 ListItem 内的渲染行为,
而不是继续在大文件里盲试。
2026-11-05 16:47:12 +08:00
..
2026-11-05 16:47:12 +08:00
2026-09-13 15:50:37 +08:00
2026-09-13 15:50:37 +08:00
2026-09-13 15:50:37 +08:00
2026-09-13 15:50:37 +08:00