Files
FruitServer/docs/plans/INBOX.md
T

25 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## [已处理] 2026-10-20 | K53-A 详情页首帧直出内容,去掉「先空白背景再出内容」(仅 App 端)
**用户指令(2026-10-20,原文)**:
> 「现在从首页的短剧标题点进去仍然会闪屏 先显示详情页背景色 然后才显示内容 还是没有修改好」
**根因(已定位)**
`drama_detail_view.dart` 的 `_page()` 第一行是 `if (logic.loading) return _loading(l10n);`:即便是从首页卡片进入(标题、封面、简介、数据都已具备),详情接口未返回前整页被替换成「ink 背景 + AppBar + 转圈」的空白页;接口返回后才渲染真正内容 → 表现为「先闪一下底色,再出内容」。
**口径(只改 Flutter,不动后端、不改接口)**
1. 首帧直出:`_page()` 不再因 `logic.loading` 整页 loading;直接用 `logic.drama`(初始即传入的卡片数据)渲染 Header / 数据卡 / 简介 / 标签。
2. 选集区按需加载:
- `drama.episodes.isEmpty && logic.loading` → 选集区显示 6 个骨架格(1:1 圆角块 + 轻微呼吸),Key `detail-episodes-loading`;
- 详情失败 → 选集区显示「加载失败 + 重试」,Key `detail-episodes-retry`,页面其它内容不受影响;
- 详情成功 → 正常渲染选集网格。
3. 仅当传入卡片本身没有可用内容(标题与封面都为空)时,才允许整页 loading/失败页;现有 `detail-error` 等 Key 保留给该场景。
4. 底部 CTA 在选集未加载时禁用(灰态)并显示 `startWatching`,详情到达后恢复可点。
5. 不改 `openDetail` 的跳转方式(K51-A 已改)。
**测试/门禁**
- 新增:进入详情页首帧即可看到 `detail-title`、`detail-poster`、`detail-stats`,且不存在整页 `CircularProgressIndicator`;
- 详情加载中选集区显示 `detail-episodes-loading`;失败显示 `detail-episodes-retry` 且标题仍在;
- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。
**流程**:从 `develop` 拉 `fix/flutter-k53-detail-first-frame`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。