26 lines
2.0 KiB
Markdown
26 lines
2.0 KiB
Markdown
## [已处理] 2026-10-20 | K51-A 修复首页进入详情页闪屏/灰屏(仅 App 端)
|
||
|
||
**用户指令(2026-10-20,原文)**:
|
||
> 「从首页进短剧详情页会闪屏 灰屏看下什么问题」
|
||
|
||
**根因(已定位)**
|
||
`PlayerLogic.openDetail()` 在 push 详情页之前先执行:
|
||
1. `session.setRouteVisible(false)` —— 视频层被隐藏/降级为未就绪状态,feed 只能渲染封面占位;
|
||
2. `await session.playbackSettled` —— 等待期间首页仍可见;
|
||
此时封面若尚未进图片缓存,`RemoteImage` 会先画浅色底,叠加遮罩后呈灰白 → 用户看到的就是进详情前的灰屏闪一下;随后 `saveCurrentProgress` 再等待一次,进一步放大该可见窗口。
|
||
|
||
**口径(只改 Flutter,不动后端、不改接口)**
|
||
1. `openDetail()` 改为先 push 路由(视频组件保持挂载,不再 `setRouteVisible(false)`、不再 `await playbackSettled` 后再 push):
|
||
- push 之前 `session.setOverlayOpen(true)`,路由返回后 `session.setOverlayOpen(false)`(复用评论面板的暂停/恢复方式,保证详情页覆盖期间不继续外放声音);
|
||
- 路由期间视频正常暂停,返回后回到原播放状态与进度,不重新 seek。
|
||
- `saveCurrentProgress()` 放到 push 返回之后(不阻塞首帧)。
|
||
2. 首页 feed 的「标题点击进详情」「系列信息点击进详情」走同一逻辑,确保都不闪。
|
||
3. 详情页自身加载态保持 ink 背景 + 现有骨架,不改。
|
||
|
||
**测试/门禁**
|
||
- 新增:从 feed 点详情后,push 前后视频 port 保持挂载(可断言 `session.active` 不变)、路由返回后播放状态与进度不变;
|
||
- 不再出现 `setRouteVisible(false)` 造成的占位渲染;
|
||
- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。
|
||
|
||
**流程**:从 `develop` 拉 `fix/flutter-k51-detail-flash`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。
|