From 82dd899ad0e4e7f5021347d3b96dbacca274398d Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Wed, 21 Oct 2026 10:16:48 +0800 Subject: [PATCH] =?UTF-8?q?docs(plans):=20=E7=95=99=E7=97=95=20K78=20?= =?UTF-8?q?=E5=BA=95=E9=83=A8=E5=AF=BC=E8=88=AA=E6=94=BE=E5=A4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/INBOX.md | 67 +++++++++++++++--------------------------- docs/plans/PROGRESS.md | 28 ++++++++++++++++++ 2 files changed, 51 insertions(+), 44 deletions(-) diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 349cafe..aea96b5 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -1,65 +1,44 @@ # INBOX -## [已处理] K77-A 视频未就绪不再显示封面,改由进度条表示加载 +## [已处理] K78-A 底部导航图标与文字放大 ### 需求 -1. 视频还没加载出来时**不显示封面**,视频区保持纯黑。 -2. 加载中(首帧未就绪 / 中途 network buffering)用**进度条本身**做加载状态: - 轨道上跑一段主题色高光,不要静态空进度条。 +底部导航(首页/剧场/创作/我的,浅色与首页 feed 深色共用 `AppBottomNav`)的图标和文字偏小, +整体放大一档。 ### 现状 -- `lib/pages/player/widgets/player_video_surface.dart` - - `_FallbackBackground` 会渲染 `RemoteImage(posterUrl)` + 黑色遮罩(key `player-fallback-cover` / `player-fallback-scrim`) - - `player_view.dart` 传入 `posterUrl: drama.posterUrl` -- `lib/pages/player/widgets/home_feed_overlay_parts.dart` `_FeedProgressBar` - - 控制器为空时画一条 0 进度的空轨道;播放中也没有 buffering 态 -- `lib/pages/player/widgets/seek_progress_bar.dart`(全屏播放页进度条) - - 未初始化时 `Slider` 处于 disabled,静态空轨道;没有 buffering 态 +`lib/core/theme/app_dimens.dart`: -### 实现 +- `navIcon = 20` +- `navLabel = 10` +- `navHeight = 64` -1. **去掉封面占位** - - `PlayerVideoSurface` 删除 `posterUrl` 参数与 `_FallbackBackground` 里的 `RemoteImage` / 遮罩, - 未就绪时只渲染纯黑 `ColoredBox`(保留 key `player-fallback-background`) - - 删除不再需要的 `remote_image.dart` 引用 - - `player_view.dart` 调用处去掉 `posterUrl:` +`AppBottomNav` 里图标与文字间距 `SizedBox(height: 2)`。 -2. **新增公共加载轨道** `lib/pages/player/widgets/loading_progress_track.dart` - - `LoadingProgressTrack({required double height, Color trackColor = Colors.white24, Color highlightColor = AppColors.blue, Key? key})` - - 轨道铺满宽度;一段约 28% 宽的主题色高光从左到右循环滑动 - (`AnimationController` 1200ms `repeat()`,`Curves.easeInOut`) - - 整体挂 `Key('progress-loading')`,高度与所在进度条一致,避免布局跳动 +### 改动 -3. **首页 feed 进度条**(`_FeedProgressBar`) - - `controller == null` → 直接渲染 `LoadingProgressTrack`(高度 `widget.height`,外层保持 `hitHeight` 手势区),不显示滑块/拇指 - - 播放中 `value.isBuffering == true` → 同样渲染加载轨道(隐藏已播进度与白色圆点) - - 其余情况保持现有可拖动进度条 - -4. **全屏播放页进度条**(`SeekProgressBar._buildTrack`) - - `!video.isInitialized || video.isBuffering` → 用 `LoadingProgressTrack` 替换 `Slider` - (高度沿用 compact/普通两种非拖动高度,隐藏时间文案) - - 其余情况保持现有 Slider 与拖动逻辑 - -### 测试 - -- 更新 `test/player/player_video_surface_test.dart`、`test/player/player_fullscreen_test.dart`: - 不再断言 `player-fallback-cover` / `player-fallback-scrim`,改为断言 `player-fallback-background` 为纯黑 -- 新增 `test/player/loading_progress_track_test.dart`:渲染后存在 `progress-loading`,pump 一段时间后动画仍在运行(可用 `tester.pump` 两次断言位置变化) -- `SeekProgressBar` 增加用例:`valueListenable == null` 或 buffering 值时出现 `progress-loading`,正常播放时出现 `Slider` +1. `lib/core/theme/app_dimens.dart` + - `navIcon`:`20` → `24` + - `navLabel`:`10` → `12` + - `navHeight`:`64` → `68` +2. `lib/core/widgets/app_bottom_nav.dart` + - 图标与文字间距 `2` → `3`,其余布局不变(四等分、选中态主题色、深色/浅色两种底不变) +3. `test/theme/app_dimens_test.dart` + - 断言同步为 `navLabel = 12`、`navHeight = 68`(如断言了 `navIcon` 一并更新) ### 验收 -- 门禁:`dart analyze lib test` 零告警、`flutter test` 全过、`flutter build apk --debug` 成功。 -- 真机自查:冷启动进入 feed 时视频区纯黑、底部进度条有高光跑动;弱网卡顿时进度条切回高光跑动。 +- 空间检查:`navHeight 68` 下 24 图标 + 3 间距 + 12 文字垂直居中不溢出 +- 门禁:`dart analyze lib test` 零告警、`flutter test` 全过、`flutter build apk --debug` 成功 ### Git -- 从 `develop` 拉 `feat/progress-loading-state`。 -- 提交:`feat(player): 未就绪改由进度条展示加载态`,作者 `Zhou Weidong <502333560@qq.com>`。 -- `--no-ff` 合回 `develop` 并 push;`FruitServer/docs/plans/PROGRESS.md` 追加 K77-A 留痕。 +- 从 `develop` 拉 `feat/bottom-nav-larger`。 +- 提交:`feat(nav): 底部导航图标与文字放大`,作者 `Zhou Weidong <502333560@qq.com>`。 +- `--no-ff` 合回 `develop` 并 push;`FruitServer/docs/plans/PROGRESS.md` 追加 K78-A 留痕。 ### 约束 -- 全程中文;禁止 `git add -A`;不改其它页面与交互;完成后停住等待验收。 +- 全程中文;禁止 `git add -A`;只动导航尺寸与相关断言;完成后停住等待验收。 diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 72fe526..6b610f0 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -22709,3 +22709,31 @@ Running Gradle task 'assembleDebug'... ``` 解读:静态检查零告警,486 条测试全部通过,debug APK 构建成功。真机验收由用户执行。 + +## 2026-10-21 ReelShort:K78-A 底部导航图标与文字放大 + +- 前置状态:K77-A 已完成并合并,develop 合并提交 `0ba6ea9`。 +- 分支:`feat/bottom-nav-larger` +- 功能提交:`d6b2d30 feat(nav): 底部导航图标与文字放大` +- develop 合并提交:`7270863 merge: 合并 K78-A 底部导航放大`,已推送 `0ba6ea9..7270863`。 +- `AppDimens.navIcon` 由 20 调整为 24,`navLabel` 由 10 调整为 12,`navHeight` 由 64 调整为 68。 +- `AppBottomNav` 图标与文字间距由 2 调整为 3;四等分布局、选中态、浅色与深色底均未改动。 +- 尺寸测试同步增加 `navIcon = 24` 断言,并更新 `navLabel = 12`、`navHeight = 68`。 + +门禁原始输出: + +```text +$ dart analyze lib test +Analyzing lib, test... +No issues found! + +$ flutter test +00:50 +486: All tests passed! + +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... + 14.3s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +解读:静态检查零告警,486 条测试全部通过,debug APK 构建成功。真机验收由用户执行。