docs(plans): 留痕 K50-A 品牌开屏动画

This commit is contained in:
Zhou Weidong committed 2026-10-20 17:20:38 +08:00
1 parent 38aac37a4e
commit 1de202ad4a
2 files changed
+49 -19

No files matched your search

+18 -19
View File
@@ -1,27 +1,26 @@
## [已处理] 2026-10-20 | K46-A 榜单/新剧/预约页支持下拉刷新与上拉加载(仅 App 端)
## [已处理] 2026-10-20 | K50-A 开屏页动画(FruitShorts 品牌呈现)+ 新图标接入校验(仅 App 端)
**用户指令(2026-10-20,原文)**:
> 「榜单 新剧 预约页面都要下拉刷新 上拉加载功能」
> 「1现在改下app 图标 要表现出来水果短剧 可以放一个果篮 里面有各种水果 要有视频元素 2还有开屏页 要有动画体现出水果短剧 FruitShorts」
**口径(只改 Flutter,不动后端、不改接口;数据源仍是本地 `CatalogController.dramas`,客户端分页,不伪造接口)**
**当前进度(图标资源已由 Trae 生成并替换,不要覆盖)**
- 新图标:暖橙渐变底 + 编织果篮(橙子、苹果、葡萄)+ 白色圆形播放键;
- 已替换:`android/.../mipmap-*/ic_launcher.png`、`drawable-*/ic_launcher_foreground.png`、`drawable-*/splash_icon.png`、`assets/icon/fruitshorts.png`(1024)、`assets/icon/splash_mark.png`(512)、iOS `AppIcon.appiconset/*.png`;
- 自适应图标背景色 `values/colors.xml` 的 `ic_launcher_background` 已改为 `#FFF1E5`。
1. 复用 K45-A 的 `AppPullToRefresh`(若 K45-A 尚未完成,先完成它)。
2. 通用分页逻辑(抽到 `lib/core/widgets/paged_local_list.dart` 或页面内复用):
- 每页 20 条,`visible = all.take(pageCount * 20)`;
- 滚动到距底 ≤200 时自动加载下一页:`pageCount++`,底部先显示 20px 主题色转圈(≥300ms,避免闪烁),加载完若已到底显示「没有更多了」(新增 l10n `noMore`:没有更多了 / No more / Tidak ada lagi),Key `<page>-no-more`;
- 下拉刷新:`catalog.refresh()`(静默)后 `pageCount = 1`,保持当前滚动位置回到顶部;
- 刷新中/加载中防重复触发。
3. 榜单页:`AppPullToRefresh` 包裹整页滚动(三强 + 第 4 名起列表),第 4 名起列表使用上述分页;底部加载态 Key `ranking-load-more`。
4. 新剧页:
- `AppPullToRefresh` 包裹;
- 「今日首映」取自第一页第一条;「更多新剧」横滑区保留前 12 条;
- 其下新增「全部新剧」双列网格(复用 `DramaGrid`),使用上述分页;底部 Key `new-releases-load-more`。
5. 预约页:`AppPullToRefresh` 包裹(下拉调用 `catalog.refresh()`),空态仍为票根卡;无列表时不显示加载更多。
6. 三页滚动体统一 `AlwaysScrollableScrollPhysics`,空列表/短列表也能下拉。
**本次只做开屏动画(`lib/pages/splash/splash_page.dart`)**
1. 背景改为深暖色 `#100C0A`(与原生 `splash_background` 一致,避免原生开屏 → Flutter 白闪);状态栏内容浅色。
2. 动画(总时长约 1200ms,`AnimationController` + CurvedAnimation):
- 0–500ms:`splash_mark.png` 从 0.86 缩放到 1.0,opacity 0→1(`Curves.easeOutBack`),画布 96×96、圆角 24、带柔光(主色 0x33FF7A1A 径向渐变 + blur 40);
- 150–650ms:品牌名 `FruitShorts`(28 号 w900 白色,Outfit)从下方 12px 滑入 + 淡入;Key `splash-brand`;
- 300–800ms:中文标语「水果短剧」(13 号 white70,字距 4),Key `splash-tagline`;
- 500–1000ms:底部 22×22 主题色 `CircularProgressIndicator`(Key `splash-loading`)淡入,保持现有加载语义;
- 可选:背景两团极淡暖色光斑做缓慢呼吸(4s 循环,透明度 ≤0.08)。
3. 页面 Key `splash-screen` 保留;不使用第三方动画库;动画不可无限阻塞首帧,`HomePage` 数据就绪后正常替换。
4. 不修改图标 PNG 与 colors.xml;如发现自适应图标前景比例异常,只允许调整 `ic_launcher.xml` 的 inset(16% → 20%),不改图。
**测试/门禁**
- 榜单/新剧:首屏 20 条,滚到底出现加载态并追加到 40 条;全部加载完显示 `<page>-no-more`;下拉刷新后回到 20 条;
- 预约页:下拉触发 refresh,不出现加载更多;
- 新增:`splash-brand`、`splash-tagline`、`splash-loading` 存在;动画推进 1200ms 后 opacity 均为 1;
- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。
**流程**:从 `develop` 拉 `feature/flutter-k46-paged-pages`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。
**流程**:从 `develop` 拉 `feature/flutter-k50-splash-animation`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行(安装后看桌面图标 + 开屏动画)。
+31
View File
@@ -21701,6 +21701,37 @@ Running Gradle task 'assembleDebug'...
解读:静态检查零告警,456 条测试全部通过,debug APK 构建成功。真机长按加速效果由用户验收。
## 2026-10-20 ReelShort:K50-A 品牌开屏动画
- 前置状态:K48-A、弧线方向修正与 K49-A 均已合并,develop 合并提交 `499e42b`。
- 分支:`feature/flutter-k50-splash-animation`
- 功能提交:`15570f1 feat(flutter): 重做品牌开屏动画`
- develop 合并提交:`da78d87 merge: 合并 K50 品牌开屏动画`,已推送。
- 开屏背景改为 `#100C0A`,状态栏使用浅色图标;使用 1200ms `AnimationController` 分段呈现 Logo、FruitShorts、中文标语与加载圈。
- Logo 使用 96×96、圆角 24、暖橙径向柔光和 40px blur,从 0.86 缩放到 1.0;`FruitShorts` 为 28 号 w900 Outfit 白字并上滑淡入;「水果短剧」为 13 号 white70、字距 4;底部加载圈 22×22 主题色。
- `splash-screen`、`splash-brand`、`splash-tagline`、`splash-loading` Key 齐备,首页数据就绪后仍由现有 HomePage 门控替换。
- Trae 提供的图标 PNG、`colors.xml` 与 iOS AppIcon 资源均未覆盖、未纳入本次提交;debug 构建已使用当前本地资源完成接入校验。
测试:新增背景色、浅色状态栏、三个品牌 Key 及 1200ms 后 Logo/品牌/标语/加载圈 opacity 均为 1 的断言。全量测试增至 457 条。
门禁原始输出:
```text
$ dart analyze lib test
Analyzing 2 items...
No issues found! (ran in 2.5s)
$ flutter test
00:44 +457: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'...
8.5s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:静态检查零告警,457 条测试全部通过,debug APK 构建成功。桌面图标和开屏动画由用户安装真机验收。
## 2026-10-20 ReelShort:详情页顶部圆形按钮统一修正
- 前置状态:K40-B 评论入口登录闸已合并,合并提交 `230f16a`。