From 041d97a0a3d77e25c08e854e69229ec2dbf59e7d Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Tue, 20 Oct 2026 14:52:59 +0800 Subject: [PATCH] =?UTF-8?q?docs(plans):=20=E7=95=99=E7=97=95=20K34-A=20?= =?UTF-8?q?=E5=89=A7=E5=9C=BA=E9=A1=B5=E7=B2=BE=E8=87=B4=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/INBOX.md | 35 +++++++++++++++++++++++++++++++++++ docs/plans/PROGRESS.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 4105e0b..aa2472e 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -1,3 +1,38 @@ +## [已处理] 2026-10-20 | K34-A 剧场页:搜索框精致化 + 筛选区固定吸顶动效 + 下拉刷新精致化(仅 App 端) + +**用户指令(2026-10-20,原文)**: +> 「1现在改剧场页面 上面的搜索框ui 优化下 不够精致 2 然后下面的搜索条件要固定 上滑时要有动效 3下拉刷新 要精致些 不是整个页面的刷新」 + +**现状**(`lib/pages/discover/discover_view.dart`) +- 搜索框与分类 tab、工具按钮行都放在 `ListView` 内,上滑会一起滚走; +- 下拉刷新用整页 `RefreshIndicator`,转圈出现在页面顶部中线,观感粗糙; +- 搜索框为纯白填充 + 大圆角,缺少描边/焦点态/阴影细节。 + +**口径(只改 Flutter,不动后端、不改接口)** + +1. 搜索框精致化(Key `discover-search` 不变) + - 高 40、圆角 20、白底、1px `AppColors.border` 描边、轻微阴影 `0x0DFF8A3D` blur 10 offset(0,4); + - 左侧放大镜 17 `AppColors.subtle`,与文字间距 8;hint/输入 13.5,hint 色 `AppColors.subtle`; + - 聚焦态:描边变 `AppColors.blue`、阴影加深(`0x1AFF8A3D`),过渡 160ms;失去焦点恢复; + - 左右内边距 14,右侧无额外按钮。 +2. 筛选区固定 + 吸顶动效 + - 把「分类 tab 行 + 工具按钮行」合并成一个吸顶头:`CustomScrollView` + `SliverPersistentHeader(pinned: true)`(或页面 Stack 固定层 + 滚动监听,二选一,保证上滑时这两行原地不动); + - 动效:滚动偏移 > 0 后,吸顶头背景由透明渐变为 `AppColors.ink`(`AnimatedContainer` 200ms),底部出现 1px `AppColors.border` 分隔线与轻微阴影;回到顶部恢复透明; + - 分类 tab 自身仍可横向滚动;网格在其下方滚动;页面下拉刷新时吸顶头保持固定。 +3. 下拉刷新精致化(不是整页刷新) + - 刷新指示器改为紧凑样式:直径 20 的 `CircularProgressIndicator(strokeWidth: 2)`(主色),出现位置在吸顶头下方(`edgeOffset` = 吸顶头高度 + 8),不覆盖整页、不出现全屏 loading; + - 刷新时保留现有列表内容与滚动位置,不清空网格、不切到空态/骨架;数据仍走 `categories.load`,但只有在首屏为空时才允许整块 loading; + - 松手后指示器平滑收起(`RefreshIndicator` 自带动画即可)。 +4. 其它不变:搜索态结果页、分类切换、工具按钮行为、双列卡片、底部导航。 + +**测试/门禁** +- 更新/新增:搜索框焦点态描边为主题色;上滑 200px 后分类 tab 与工具按钮屏幕 y 不变且出现吸顶背景;下拉时出现 20px 紧凑指示器且网格条目仍存在; +- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。 + +**流程**:从 `develop` 拉 `feature/flutter-k34-theater-polish`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。 + +--- + ## [已处理] 2026-10-20 | K33-K 首页 feed 顶栏(tab/刷新/搜索)固定悬浮,不随滑动移动(仅 App 端) **用户指令(2026-10-20,原文)**: diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 4ff0968..cce11c3 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -20931,3 +20931,33 @@ Running Gradle task 'assembleDebug'... ``` 解读:静态检查零告警,416 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。 + +## 2026-10-20 ReelShort:K34-A 剧场页搜索精致化 + 筛选吸顶 + 下拉刷新 + +- 分支:`feature/flutter-k34-theater-polish` +- 功能提交:`5283ab2 feat(flutter): 剧场页搜索与吸顶筛选精致化` +- develop 合并提交:`63ace3b merge: 合并 K34-A 剧场页精致化`,已推送。 +- 搜索框:高 40、圆角 20、白底 + 1px `AppColors.border` + 轻阴影;图标 17、hint 13.5;聚焦时描边主题橙、阴影加深,`AnimatedContainer` 160ms 过渡;Key `discover-search` 不变,新增外壳 Key `discover-search-shell`。 +- 分类 tab + 工具按钮合并为吸顶头 `theater-sticky-header`:放在滚动区外的 Stack 顶层(列表顶部预留 102 头高),滚动时原地不动;`offset > 0` 时背景 200ms 渐变为 `AppColors.ink` + 底部 1px 分隔线 + 轻阴影,回顶恢复透明;分类 tab 仍横向滚动。 +- 下拉刷新:`RefreshIndicator` 主色、`strokeWidth: 2`、`edgeOffset = 102 + 8`;刷新时保留网格与滚动位置,只有首屏为空才显示整块 loading。 +- 其余(搜索态、分类切换、工具按钮、卡片、底栏)未变。 + +测试:搜索框圆角/边框与聚焦变蓝;滑动后吸顶头位置不变且背景变 ink;刷新指示器颜色/strokeWidth/edgeOffset 断言。 + +门禁原始输出: + +```text +$ dart analyze lib test +Analyzing lib, test... +No issues found! + +$ flutter test +00:49 +419: All tests passed! + +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... + 12.2s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +解读:静态检查零告警,419 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。