2.2 KiB
2.2 KiB
[已处理] 2026-10-20 | K53-A 详情页首帧直出内容,去掉「先空白背景再出内容」(仅 App 端)
用户指令(2026-10-20,原文):
「现在从首页的短剧标题点进去仍然会闪屏 先显示详情页背景色 然后才显示内容 还是没有修改好」
根因(已定位)
drama_detail_view.dart 的 _page() 第一行是 if (logic.loading) return _loading(l10n);:即便是从首页卡片进入(标题、封面、简介、数据都已具备),详情接口未返回前整页被替换成「ink 背景 + AppBar + 转圈」的空白页;接口返回后才渲染真正内容 → 表现为「先闪一下底色,再出内容」。
口径(只改 Flutter,不动后端、不改接口)
- 首帧直出:
_page()不再因logic.loading整页 loading;直接用logic.drama(初始即传入的卡片数据)渲染 Header / 数据卡 / 简介 / 标签。 - 选集区按需加载:
drama.episodes.isEmpty && logic.loading→ 选集区显示 6 个骨架格(1:1 圆角块 + 轻微呼吸),Keydetail-episodes-loading;- 详情失败 → 选集区显示「加载失败 + 重试」,Key
detail-episodes-retry,页面其它内容不受影响; - 详情成功 → 正常渲染选集网格。
- 仅当传入卡片本身没有可用内容(标题与封面都为空)时,才允许整页 loading/失败页;现有
detail-error等 Key 保留给该场景。 - 底部 CTA 在选集未加载时禁用(灰态)并显示
startWatching,详情到达后恢复可点。 - 不改
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 留痕;真机验收由用户执行。