docs(plans): 留痕 K33-K 首页 feed 固定顶栏

This commit is contained in:
Zhou Weidong committed 2026-10-20 14:46:31 +08:00
1 parent 4a6a31d3cd
commit a80a0ed4ca
2 files changed
+54

No files matched your search

+24
View File
@@ -1,3 +1,27 @@
## [已处理] 2026-10-20 | K33-K 首页 feed 顶栏(tab/刷新/搜索)固定悬浮,不随滑动移动(仅 App 端)
**用户指令(2026-10-20,原文)**:
> 「上方的tab 刷新 搜索不随页面滑动的 悬浮在页面上」
**现状**:顶部行(刷新按钮 + 漫剧/真人剧/推荐 tab + 搜索)在 `HomeFeedOverlay` 内部,随竖向 `PageView` 的每一页一起滑动,切剧时会跟着位移。
**口径(只改 Flutter,不动后端、不改接口)**
1. 抽出独立组件 `HomeFeedHeader`(建议 `lib/pages/player/widgets/home_feed_header.dart`):
- 内容与原 header 一致:左侧刷新(转圈态 `home-feed-refreshing`)、中间三个文字 tab(Key `home-feed-tab-anime/real/recommend`,选中样式不变)、右侧搜索(Key `home-feed-search`);
- 自带选中 tab 与 refreshing 状态;参数:`l10n`、`onRefresh`(`Future<bool> Function()`)、`onSearch`、`onMore`(长按刷新按钮时打开更多弹窗)。
2. 固定挂载:`PlayerPage` 的 homeMode 分支在竖向 `PageView` 之外的 `Stack` 顶层渲染 `HomeFeedHeader`(`Positioned(top: 0, left: 0, right: 0)` + SafeArea),保证上下滑动切剧时**完全不位移**。
- 显示条件:`!_boosting && !(logic.pip || logic.pipPreparing)`;清屏态仍显示;切到其它 Tab / 不活跃时不显示。
3. `HomeFeedOverlay` 删除 header 及相关状态,仅保留:底层手势、右侧 rail、底部信息、整集条、加速提示;原 header 的 Key 全部迁移到 `HomeFeedHeader`。
4. 其余行为不变:刷新静默、长按中间更多、长按两侧加速、整集条、清屏、返回续播、画中画复位。
**测试/门禁**
- 更新/新增:feed 首屏存在 `home-feed-refresh/tab-*/search`;竖向滑动切剧后这些 Key 的屏幕坐标不变(固定悬浮);加速态与画中画态下 header 不显示;清屏态 header 仍显示;
- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。
**流程**:从 `develop` 拉 `fix/flutter-k33-feed-header`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。
---
## [已处理] 2026-10-20 | K33-J 首页 feed:清屏态进度条可拖动 + 暂停时长按两侧恢复播放(仅 App 端)
**用户指令(2026-10-20,原文)**:
+30
View File
@@ -20901,3 +20901,33 @@ Running Gradle task 'assembleDebug'...
```
解读:静态检查零告警,415 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。
## 2026-10-20 ReelShort:K33-K 首页 feed 顶栏固定悬浮
- 分支:`fix/flutter-k33-feed-header`
- 功能提交:`9175a7f fix(flutter): 首页 feed 顶栏固定悬浮`
- develop 合并提交:`f9d4f98 merge: 合并 K33-K 首页 feed 固定顶栏`,已推送。
- 新增 `home_feed_header.dart`:`HomeFeedHeader(l10n, onRefresh, onSearch, onMore)`,自带刷新转圈与 tab 选中;Key `home-feed-refresh`/`home-feed-refreshing`/`home-feed-tab-anime|real|recommend`/`home-feed-search` 全部迁入。
- `PlayerPage` homeMode 在竖向 PageView 之外的 Stack 顶层用 `Positioned(top:0,left:0,right:0)` + SafeArea 固定渲染 header;显示条件 `!_boosting && !(pip || pipPreparing)`,清屏态仍显示;切 Tab 时整页 offstage。
- `HomeFeedOverlay` 移除 header 及 tab/refresh 状态,只保留手势层、rail、底部信息、整集条、加速提示;构造参数同步精简(移除 onEpisodes/onDownload/onClear/onSearch/onRefreshFeed/onPip)。
- 其余行为不变:刷新静默、长按中间更多、长按两侧加速、整集条、清屏、返回续播、画中画复位。
测试:新增「上滑切剧后刷新/tab/搜索屏幕坐标不变」;加速态 header 隐藏、松手恢复;清屏态 header 仍显示(既有用例);刷新转圈用例迁到 HomeFeedHeader。
门禁原始输出:
```text
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test
00:38 +416: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'...
7.3s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:静态检查零告警,416 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。