2.7 KiB
2.7 KiB
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,避免重复播品牌画面。
实现
pubspec.yaml:flutter.assets增加assets/icon/splash_logo.pngassets/icon/splash_logo_android12.png
lib/pages/home/home_view.dart- 新增私有
_startupSplash():AnnotatedRegion<SystemUiOverlayStyle>(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:if (catalog.loading) { return catalog.settled ? _retryLoading() : _startupSplash(); }_retryLoading()即现有的深底 + 主题色转圈。
- 新增私有
- 测试(
test/home/下)settled == false且 loading:出现startup-splash,不出现CircularProgressIndicatorsettled == true且 loading:出现转圈,不出现startup-splash- 数据就绪:出现首页 feed,
startup-splash消失
- 真机自查建议:冷启动录屏,确认原生开屏 → 品牌画面(无转圈)→ 首页,无闪白。
验收
- 冷启动不再出现单独的转圈页。
- 门禁:
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;不改原生开屏资源与其它页面;完成后停住等待验收。