docs(plans): 留痕 K33-C 首页 feed 精修

This commit is contained in:
Zhou Weidong committed 2026-10-20 13:57:07 +08:00
1 parent cc187a53c0
commit 43d04519c2
2 files changed
+61

No files matched your search

+29
View File
@@ -1,3 +1,32 @@
## [已处理] 2026-10-20 | K33-C 首页 feed 精修:去弹幕/全屏观看、rail 对齐播放页、进度条可拖动、整集条跳播放页、纯黑底、刷新按钮(仅 App 端)
**用户指令(2026-10-20,原文)**:
> 「弹幕和全屏观看不要 右侧的和播放页的保持一致进度条可以滑动 点击观看完整剧集直接跳转到播放页 而且整个页面怎么还有背景色顶部左侧三道横线改为刷新」
**口径(只改 Flutter,不动后端、不改接口)**
1. 删除底部第一行:「弹幕」胶囊与「全屏观看」胶囊整块移除(含 `_DanmakuPill`、`_FullscreenPill` 与 l10n `danmaku` / `watchFullscreen` 两个 key)。
2. 右侧互动栏与播放页完全一致:
- 从 `player_overlay_parts.dart` 抽出公共组件(建议 `lib/pages/player/widgets/interaction_rail.dart`),播放页与 feed 共用;
- 视觉:34×34 深色圆形底(`0x80000000`)IconButton、图标 24、下方 11 号 w600 白字、项间距 18;
- 顺序:收藏 / 评论 / 喜欢 / 分享;数量用 `formatInteractionCount`,无数据显示文字标签;
- Key:播放页保持 `player-rail-*`,feed 保持 `rail-save` / `rail-comments` / `rail-like` / `rail-share` 与 `rail-*-count`。
3. 底部「观看完整剧集」条:
- 点击整条 → 打开全屏播放页(不是选集面板):`PlayerPage` 增加 `onOpenFullPlayer(Drama, Episode)`,home_view 里用现有 `logic.playDrama(context, drama, episodeId: episode.id)` 实现(会先取详情再进播放页);
- 底部 2px 橙色进度线改为可拖动:在进度线外侧提供 ≥20px 高的手势区(`onTapDown` + `onHorizontalDragStart/Update/End`),按横向比例 seek;`HomeFeedOverlay` 增加 `onScrubStart` / `onSeek(Duration)`,homeMode 分支接到 `logic.beginScrub` / `logic.seekTo`(当前激活的 video port)。
4. 页面底色:首页 feed 必须纯黑——`_HomeTabsState._scaffold` 在 `logic.tab == 0` 时 `backgroundColor: Colors.black`(覆盖外层暖色渐变),其它 Tab 保持透明/暖色;视频仍 `BoxFit.cover`。
5. 顶部左侧三道横线改为刷新:`Icons.refresh_rounded`,Key `home-feed-refresh`,tooltip 用 `l10n.retry`;点击触发 feed 重新加载——`PlayerPage` 增加 `onRefreshFeed` 回调,home_view 传 `catalog.load`(`HomePage` 把 `catalog.load` 透传给 `_HomeTabs`)。
6. 其余结构不变:顶部三 tab(漫剧 / 真人剧 / 推荐)、系列信息行、标题、标签、作者声明、清屏逻辑、深色底栏、上下滑动切剧。
**测试/门禁**
- 更新测试:移除弹幕/全屏观看断言;新增 `home-feed-refresh` 存在并可点击、进度拖动调用 seek、点击整集条调用 onOpenFullPlayer、首页 Scaffold 背景为黑色;
- 播放页 rail 测试保持通过(共用组件后 Key 与样式不变);
- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。
**流程**:从 `develop` 拉 `fix/flutter-k33-feed-polish`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。
---
## [已处理] 2026-10-20 | K33-B 首页 feed 按参考图重做播放浮层(仅 App 端)
**用户指令(2026-10-20,原文)**:
+32
View File
@@ -20631,3 +20631,35 @@ Running Gradle task 'assembleDebug'...
```
解读:静态检查零告警,400 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。
## 2026-10-20 ReelShort:K33-C 首页 feed 精修
- 分支:`fix/flutter-k33-feed-polish`
- 功能提交:`321c626 fix(flutter): 精修首页 feed 交互与底色`
- develop 合并提交:`c3f5f43 merge: 合并 K33-C 首页 feed 精修`,已推送。
- 删除底部弹幕/全屏观看两个胶囊及 l10n `danmaku` / `watchFullscreen`(三份 arb + 生成文件)。
- 新增公共 `interaction_rail.dart`:34×34 深色圆底 IconButton、图标 24、11 号 w600 白字、项间距 18;播放页与 feed 共用,播放页 Key `player-rail-*`、feed Key `rail-*`,数量 `formatInteractionCount`,无数据显示文字。
- 整集条点击改为打开全屏播放页:`PlayerPage` 新增 `onOpenFullPlayer(Drama, Episode)`,home_view 用 `logic.playDrama(..., episodeId)`;底部进度线改为 20px 手势区,可点按/拖动 seek(`home-feed-progress`,`onScrubStart`/`onSeek` 接 `logic.beginScrub`/`seekTo`)。
- 首页 feed 纯黑底:`_HomeTabsState._scaffold` 在 tab==0 时 `backgroundColor: Colors.black`;其它 Tab 保持透明暖色。
- 顶部左侧改为刷新按钮 `home-feed-refresh`(`Icons.refresh_rounded`,tooltip `retry`),点击触发 `PlayerPage.onRefreshFeed` → `catalog.load`;为保证原有「清屏/下载/小窗」入口不丢失,更多弹窗改为长按刷新按钮打开。
- 其余结构(三 tab、系列信息、标题、标签、作者声明、深色底栏、滑动切剧)未变。
测试:移除弹幕/全屏断言;新增首页黑底、刷新按钮、进度拖动 seek、整集条跳全屏播放页断言;播放页 rail 断言保持通过。
门禁原始输出:
```text
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test
00:37 +401: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'...
7.5s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:静态检查零告警,401 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。