2.0 KiB
2.0 KiB
[已处理] 2026-10-20 | K51-A 修复首页进入详情页闪屏/灰屏(仅 App 端)
用户指令(2026-10-20,原文):
「从首页进短剧详情页会闪屏 灰屏看下什么问题」
根因(已定位)
PlayerLogic.openDetail() 在 push 详情页之前先执行:
session.setRouteVisible(false)—— 视频层被隐藏/降级为未就绪状态,feed 只能渲染封面占位;await session.playbackSettled—— 等待期间首页仍可见; 此时封面若尚未进图片缓存,RemoteImage会先画浅色底,叠加遮罩后呈灰白 → 用户看到的就是进详情前的灰屏闪一下;随后saveCurrentProgress再等待一次,进一步放大该可见窗口。
口径(只改 Flutter,不动后端、不改接口)
openDetail()改为先 push 路由(视频组件保持挂载,不再setRouteVisible(false)、不再await playbackSettled后再 push):- push 之前
session.setOverlayOpen(true),路由返回后session.setOverlayOpen(false)(复用评论面板的暂停/恢复方式,保证详情页覆盖期间不继续外放声音); - 路由期间视频正常暂停,返回后回到原播放状态与进度,不重新 seek。
saveCurrentProgress()放到 push 返回之后(不阻塞首帧)。
- push 之前
- 首页 feed 的「标题点击进详情」「系列信息点击进详情」走同一逻辑,确保都不闪。
- 详情页自身加载态保持 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 留痕;真机验收由用户执行。