diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 32a0549..4105e0b 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -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 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,原文)**: diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index e4eeea7..4ff0968 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -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` 变更未纳入本批提交。真机验收由用户执行。