← 博客

聊天侧边栏体验优化

记录日期:2026-04-02

格式参考:docs/开发记录博客/agents.md(问题背景 → 问题列表 → 根因链 → 方案 → 采纳 → 用例 → 小结)。

1. 问题背景

神秘人 agent-chat 页通过右上角图标打开 历史会话侧栏(列表 + 遮罩)。联调与真机反馈:打开/关闭不跟手、偶有顿挫,与主对话区的流畅度不一致;期望侧栏动画 稳定 60fps、交互反馈明确

实现位置zhiyuxing-app/app/(tabs)/agent-chat.tsx(侧栏 UI、打开/关闭逻辑)。

2. 问题列表

2.1 打开侧栏瞬间卡顿、动画不平滑

根因(证据级)

方案(每题不超过两个)

优点:少一层 Modal 生命周期,打开链路更短、可预测。缺点:须自行处理 无障碍(如 accessibilityViewIsModal)与 Android 返回键(原 ModalonRequestClose 需补回)。

优点:多屏复用、参数可 A/B。缺点:拆分与测试成本。

采纳方案

补充用例

2.2 关闭路径不一致、部分操作「瞬关」无动画

根因

方案

优点:行为一致。缺点:关栏总时长约 ~240ms,逻辑上稍晚卸载列表(可接受)。

优点:防回归。缺点:状态增多。

采纳方案

补充用例

2.3 历史列表首开展示时掉帧

根因

方案

优点:低风险。缺点:极长列表仍依赖虚拟化本身上限。

优点:大数据量更稳。缺点:引入依赖与接口改造。

采纳方案

补充用例

2.4 欲「拖动手势关栏」与列表滚动抢事件

根因

方案

优点:实现快、列表滚动不受影响。缺点:只能从 头部区域 右滑关栏,不是整屏边缘拖拽。

优点:可做到「列表边缘拖关」类产品体验。缺点:接入与调试成本高。

采纳方案

补充用例

2.5 Android 物理返回与 Modal 语义丢失

根因

方案

优点:与旧 Modal 体验对齐。缺点:须注意 卸载时 remove 监听,避免泄漏。

采纳方案

补充用例

2.6(可选体验)打开时缺少触感反馈

根因

方案

优点:零结构改动。缺点:部分设备无马达或用户关闭触感。

采纳方案

补充用例

3. 小结

参考zhiyuxing-app/app/(tabs)/agent-chat.tsxzhiyuxing-app/src/components/agent-chat/AgentChatHistoryDrawer.tsxzhiyuxing-app/src/lib/agent-chat-persistence.tsdocs/开发记录博客/agents.md