# INBOX ## [已处理] K66-A 启动页停留到首页就绪再进首页 ### 背景 K65-A 已把首页预取提前到启动阶段。产品要求再简化观感: > 「等首页加载完就进入首页就行了」 即:别再出现「深底 + 转圈」这种中间页,启动期间保持与原生开屏一致的品牌画面, 目录数据就绪后直接进首页。 ### 现状 `lib/pages/home/home_view.dart` 的 `_buildHome`: - `catalog.loading` 为 true 时返回 `AnnotatedRegion(light) + Scaffold(splashInk, 居中主题色转圈)` - 数据就绪后才渲染 `_HomeTabs` ### 目标 - `catalog.loading` 且**首次启动尚未 settled** 时,显示与原生开屏一致的品牌画面: 深底 `AppColors.splashInk` + 居中的开屏图,不再显示转圈。 - 目录数据就绪后同帧切到首页。 - 非首次(`settled == true`,例如失败重试)仍保留原来的转圈 loading,避免重复播品牌画面。 ### 实现 1. `pubspec.yaml`:`flutter.assets` 增加 - `assets/icon/splash_logo.png` - `assets/icon/splash_logo_android12.png` 2. `lib/pages/home/home_view.dart` - 新增私有 `_startupSplash()`: - `AnnotatedRegion(value: SystemUiOverlayStyle.light)` - `ColoredBox(color: AppColors.splashInk)` - 居中 `Image.asset(..., key: Key('startup-splash'))` - Android 用 `splash_logo_android12.png`、其它平台用 `splash_logo.png` (与各自原生开屏的取图一致,避免切换时跳变) - 尺寸:Android 288 逻辑像素见方,其它平台 384 - `_buildHome`: ```dart if (catalog.loading) { return catalog.settled ? _retryLoading() : _startupSplash(); } ``` `_retryLoading()` 即现有的深底 + 主题色转圈。 3. 测试(`test/home/` 下) - `settled == false` 且 loading:出现 `startup-splash`,不出现 `CircularProgressIndicator` - `settled == true` 且 loading:出现转圈,不出现 `startup-splash` - 数据就绪:出现首页 feed,`startup-splash` 消失 4. 真机自查建议:冷启动录屏,确认原生开屏 → 品牌画面(无转圈)→ 首页,无闪白。 ### 验收 - 冷启动不再出现单独的转圈页。 - 门禁:`dart analyze lib test` 零告警、`flutter test` 全过、`flutter build apk --debug` 成功。 ### Git - 从 `develop` 拉 `feat/startup-splash-hold`。 - 提交:`feat(home): 启动页停留至首页就绪`,作者 `Zhou Weidong <502333560@qq.com>`。 - `--no-ff` 合回 `develop` 并 push;`FruitServer/docs/plans/PROGRESS.md` 追加 K66-A 留痕。 ### 约束 - 全程中文;禁止 `git add -A`;不改原生开屏资源与其它页面;完成后停住等待验收。