聊天记录要从底部锚定加载
两个独立毛病
| 现象 | 根因 | 修法 |
|---|---|---|
| 点进去先黑屏 | 聊天页有一个全屏 loading 门闩,要等「读最近消息 + 读 session + 读 file tree + 检查是否还有更早消息 + 设置顶部滚动目标」全做完才渲染 | 永不显示全屏 loading:先渲染空聊天框架和输入栏,再后台查 |
| 内容从上往下刷 | 加载方向反了 | 底部锚定:进入即定位最下方,上滑才加载旧消息 |
正确顺序
- 进入会话永远不黑屏、不显示全屏 loading。
- 先渲染空聊天框架 + 输入栏。
- 本地最近若干条(如 5 条)读到后立即显示。
- 旧消息、文件树、历史列表全部后台查。
- 上滑才加载旧消息。
- 不再用「加载完再滚到底部」,改为底部锚定。
判据:「加载」是后台行为,不该挡住首屏。 任何需要「等一堆 IO 完再显示」的列表页,都该先出一个骨架/容器。
相关
- 列表切换要用master-detail而非重建列表 —— 同为「不要为了数据把整个视图重建/清空」
- 折叠动画要有收起态过渡 —— 同族:交互状态缺失导致观感断裂