docs(plans): 留痕 K33-A 首页沉浸式 feed

This commit is contained in:
Zhou Weidong committed 2026-10-20 13:35:25 +08:00
1 parent aa69d4b0c6
commit c43321e19f
2 files changed
+58

No files matched your search

+30
View File
@@ -1,3 +1,33 @@
## [已处理] 2026-10-20 | K33-A 首页改为沉浸式 feed 流(仅 App 端)
**用户指令(2026-10-20,原文)**:
> 「现在把首页改下 打开就是feed流 滑动切换短剧」
**参考图**:`20261020-132616.jpg`(全屏竖版 feed:视频铺满、右侧互动栏、底部剧集信息、上下滑动换剧)。
**现状**
- `lib/pages/home/home_view.dart` 的 `_home()` 返回 `HomeBrowseView`(浏览型首页:频道 + 轮播 + 双列网格)。
- 播放器已具备首页 feed 能力:`PlayerPage(homeMode: true, feedDramas: [...])` 使用竖向 `PageView` 切换短剧,配套 `HomeFeedOverlay`(标题、搜索、清屏、更多、右侧点赞/评论/分享/收藏、底部信息卡),并可通过 `onImmersiveChanged` 通知外层隐藏底部导航;`HomeLogic` 已有 `videoImmersive` 与对应开关。
**口径(只改 Flutter,不动后端、不改接口)**
1. 首页 Tab 默认即 feed:
- `_HomeTabsState._home()` 改为返回
`PlayerPage(homeMode: true, embedded: true, active: logic.tab == 0, drama: widget.dramas.first, initialIndex: 0, feedDramas: widget.dramas, onDramaChanged: logic.onDramaChanged, onImmersiveChanged: logic.onImmersiveChanged, onSearch: () => logic.select(1, search: true), onDiscover: () => logic.select(1), onMy: () => logic.select(3))`;
- 进入首页即为第一部的 feed,视频自动播放,上下滑动切换短剧(沿用播放器现有竖向 PageView,不新写一套)。
2. 底部导航保持 4 槽(首页/剧场/创作/我的);feed 清屏态仍通过 `onImmersiveChanged` 隐藏底栏,现有逻辑不动。
3. 首页 feed 的搜索按钮跳剧场并聚焦搜索(`logic.select(1, search: true)`),「更多」里的下载/小窗保持现状。
4. 浏览型首页组件(`home_browse_view.dart`、`home_browse_logic.dart`、`widgets/home_drama_grid.dart`、`widgets/home_browse_header.dart`)保留不删,首页不再引用它们(如 analyzer 报未使用 import 就清 import)。
5. 切到其它 Tab 时 feed 暂停(`active: false` 已由播放器处理),切回首页保持当前集与当前剧;`videoImmersive` 状态与 `onSystemBack` 行为不变。
**测试/门禁**
- 更新因首页改为 feed 而失败的用例:首页断言改到 feed 键(如 `home-feed-title`、`home-feed-info-card`、`player-video-tap`、`rail-like`),删除或迁移依赖 `home-browse-page`、`home-channels`、`home-hero-banner` 的首页用例(`HomeDramaCard` 组件自身测试保留);
- 新增用例:进入首页即出现 feed(`home-feed-title` 或竖向 PageView)、向上滑动后标题变化(切换短剧)、切到剧场 Tab 后 feed 不再可见;
- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。
**流程**:从 `develop` 拉 `feature/flutter-k33-home-feed`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。
---
## [已处理] 2026-10-20 | K32-A 剧场页按参考图重做(仅 App 端)
**用户指令(2026-10-20,原文)**:
+28
View File
@@ -20537,3 +20537,31 @@ Running Gradle task 'assembleDebug'...
```
解读:静态检查零告警,404 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。
## 2026-10-20 ReelShort:K33-A 首页改为沉浸式 feed 流
- 分支:`feature/flutter-k33-home-feed`
- 功能提交:`b7926d6 feat(flutter): 首页改为沉浸式 feed 流`
- develop 合并提交:`53cd2db merge: 合并 K33-A 首页沉浸式 feed`,已推送。
- `home_view.dart` 的 `_home()` 改为 `PlayerPage(homeMode: true, embedded: true, active: tab==0, drama: 首部, feedDramas: 全部, onDramaChanged/onImmersiveChanged 接 HomeLogic, onSearch 跳剧场并聚焦, onDiscover/onMy 切 Tab)`;浏览型首页组件全部保留未删,仅取消首页引用。
- 首页打开即竖向 feed,上滑沿用播放器现有 PageView 换剧;清屏仍通过 `onImmersiveChanged` 隐藏底栏;切 Tab 暂停、切回保持当前剧与集;底部仍 4 槽。
- 测试迁移:`discover_banner_test`(首页轮播 hero 集成)删除,轮播组件测试保留;`home_preview_layout_test`/`home_nav_ui_test`/`widget_test` 的浏览首页断言改为 feed(`home-feed-title`);`k28_a_navigation_test` 重写为 feed 版:进入首页即 feed、上滑标题变化、切剧场 feed 隐藏、feed 搜索跳剧场聚焦、剧场筛选/卡片跳转/320 宽度;`HomeDramaCard` 组件测试保留。
- `widget_test` 预加载用例改为在首页 feed 创建播放器后清空记录,再统计剧场播放器。
门禁原始输出:
```text
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test
00:38 +399: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'...
7.2s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:静态检查零告警,399 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。