docs(plans): 留痕 K33-E 首页 feed 刷新与进度优化

This commit is contained in:
Zhou Weidong committed 2026-10-20 14:12:00 +08:00
1 parent 452fe74b3d
commit d82d5c76be
2 files changed
+56

No files matched your search

+26
View File
@@ -1,3 +1,29 @@
## [已处理] 2026-10-20 | K33-E 首页 feed 无感刷新 / rail 下移 / 进度圆点与整集条底(仅 App 端)
**用户指令(2026-10-20,原文)**:
> 「1刷新要无感刷新 现在刷新会白屏 2而且 收藏 评论喜欢 分享位置太靠上 3 拖动圆点不居中 拖动的时候放大进度条 观看完整剧集的背景不明显」
**口径(只改 Flutter,不动后端、不改接口)**
1. 无感刷新:
- `CatalogController` 新增 `Future<bool> refresh()`:静默请求 `repository.fetchHomeFeed()`,成功则替换 `feed` 并 `notifyListeners()`,失败返回 false,**不修改 `loading`、不置 `error`、不清空旧数据**;
- feed 刷新按钮改为调用 `catalog.refresh()`(`HomePage` 透传给 `_HomeTabs` 的 `onRefreshFeed` 改用它,不再用 `load`);
- 刷新期间不出现全屏 loading/白屏,当前视频与页面保持;失败时 SnackBar 轻提示(复用 `catalogError`)。
2. 右侧互动栏下移:`HomeFeedOverlay` 的 rail 对齐由 `Alignment(1.0, 0.45)` 改为更靠下(约 `Alignment(1.0, 0.68)`,以底部信息区上方留 12 为界),不得压到底部信息或整集条。
3. 整集条与进度:
- 圆点垂直居中:圆点中心必须与进度线中心重合(`Positioned` 用 `top: (trackHeight - dot) / 2` 或 `Align(center)`,不能出现上下偏移);
- 拖动时放大:常态轨道 2px、圆点 6px;拖动中轨道 4px、圆点 10px,松手回落;
- 「观看完整剧集」条背景要明显:半透明深色 `0x4D000000`、圆角 0(整条通栏),高度 44,文字与箭头仍垂直居中;
- 点击/拖动手势区高度保持 ≥24px。
**测试/门禁**
- 新增/更新:`CatalogController.refresh` 不改变 `loading` 且失败保留旧数据;刷新点击不出现全屏 loading;rail 位置断言(位于底部信息区上方);圆点中心与轨道中心一致;拖动时轨道/圆点尺寸变化;
- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。
**流程**:从 `develop` 拉 `fix/flutter-k33-feed-refresh`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。
---
## [已处理] 2026-10-20 | K33-D 首页 feed 去底色/整集条透明+居中+圆点/返回续播(仅 App 端)
**用户指令(2026-10-20,原文)**:
+30
View File
@@ -20698,3 +20698,33 @@ Running Gradle task 'assembleDebug'...
```
解读:静态检查零告警,403 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。
## 2026-10-20 ReelShort:K33-E 首页 feed 无感刷新 / rail 下移 / 进度细节
- 分支:`fix/flutter-k33-feed-refresh`
- 功能提交:`82fe237 fix(flutter): 首页 feed 静默刷新与进度条细节`
- develop 合并提交:`564c0db merge: 合并 K33-E 首页 feed 刷新与进度优化`,已推送。
- `CatalogController.refresh()`:静默 fetchHomeFeed,成功替换并 notify、返回 true;失败返回 false,且不改 `loading`/`error`/旧数据。feed 刷新按钮改用 `catalog.refresh()`,失败在 `player_view` 弹 `catalogError` SnackBar,刷新期间不出现全屏 loading。
- rail 对齐 `Alignment(1.0, 0.68)`,底部不与信息区/整集条重叠。
- 整集条背景 `0x4D000000` 通栏、高 44;进度圆点中心与轨道中心严格重合(都以距条底 6px 为基准);常态轨道 2px / 圆点 6px,拖动中 4px / 10px,松手回落;手势区 24px。进度区只接管横向拖动,整条点击仍打开全屏播放页,避免点文字被 seek 抢走。
- 其余结构未变。
测试:新增 `CatalogController.refresh` 成功/失败用例(失败保留旧数据且 loading 不变);首页刷新不出现全屏 loading;rail 位于底部信息上方;整集条背景色/高度、圆点与轨道同心、拖动 4/10 与松手 2/6。
门禁原始输出:
```text
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test
00:39 +407: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'...
12.7s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:静态检查零告警,407 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。