Files
FruitServer/docs/plans/2026-10-17-K11.md

64 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-10-17 K11 首页网格 3 列 + 分类首位「全部」
## 一、目标与边界
在 K9 首页「全部剧目」网格上做最小修订:每行从 2 个改为 3 个,分类首个仍绑定
`CategoryController.allCode`,文案改为「全部 / All / Semua」。
- 客户端分支:`feature/flutter-k11-home-grid-3col`,基线 `develop 0466b4b`。
- 文档分支:`docs/k11-home-grid-3col`,FruitServer 基线任务书 `2a06190`。
- 不改轮播、空态、三态、数据源、接口、分页或其他页面。
- 不跑真机;设备侧 3 列布局、分类切换和详情跳转由用户验收。
## 二、实现方案
1. `home_drama_grid.dart`:
- `crossAxisCount: 3`
- `mainAxisSpacing: 14`
- `crossAxisSpacing: 10`
- `childAspectRatio: 2 / 3` 不变
2. 3 列下卡片仍只保留标题最多 2 行、类型最多 1 行;由现有 `Text` 的
`maxLines` / `ellipsis` 保证不溢出。
3. `discover_view.dart` 分类第一项 code 保持 `CategoryController.allCode`,
label 从 `l10n.forYou` 改为 `l10n.all`。
4. 已核对三份 ARB 已存在 `all` key:
- en:All
- zh:全部
- id:Semua
因此直接复用现有 l10n,不重复插入 JSON key;热门、最新和服务端分类顺序不变。
## 三、测试
- 更新 K9 网格断言:`crossAxisCount == 3`、`crossAxisSpacing == 10`、
`mainAxisSpacing == 14`、比例仍为 2/3。
- 新增首个分类 chip 文案断言为 `All`;切换分类时仍能更新网格。
- K9/K10 既有测试保留,不删除用例;只更新本次行为明确变化的参数断言。
- 组件/页面空态测试保持通过。
## 四、影响文件
- `ReelShort/lib/pages/discover/widgets/home_drama_grid.dart`
- `ReelShort/lib/pages/discover/discover_view.dart`
- `ReelShort/test/discover/home_all_dramas_grid_test.dart`
- `FruitServer/docs/plans/2026-10-17-K11.md`
- `FruitServer/docs/plans/PROGRESS.md`
- `FruitServer/docs/plans/INBOX.md`
## 五、门禁与 Git
1. 先更新测试取得与 3 列/全部文案相关的红灯。
2. 实现后运行定向测试。
3. 运行 `dart analyze lib test`、`flutter test`、`flutter build apk --debug`。
4. 当前有 Android `flutter run` 会话,不主动终止;构建前检查进程,必要时使用
独立工作区副本构建,避免争用原项目 `build/`。
5. 完成后 `merge --no-ff` 回客户端 `develop` 并 push;FruitServer 文档同样
合并推送。作者与提交者统一为
`Zhou Weidong <502333560@qq.com>`。
## 六、风险与待确认
- 3 列后单卡宽度变窄,长标题和类型必须继续 ellipsis,不允许改变卡片结构。
- 现有 `all` l10n 已具备三语,新增重复 key 会破坏 ARB;本批复用现有 key。
- 用户正在运行的 Flutter `run` 不终止;APK 构建需隔离原 `build/`。