# INBOX ## [已处理] K75-A 首页进详情 / 进播放页改为无感淡入 ### 需求 首页 feed: 1. 点短剧标题 → 详情页 2. 点「观看完整剧集」→ 全屏播放页 现在都是默认的平台转场(iOS 从右往左滑入、Android 缩放),观感突兀。 改成**无感淡入**:不加左右位移,只做短促的淡入 / 淡出。 ### 现状 - `lib/pages/player/player_logic.dart` `openDetail()`:`MaterialPageRoute` → `DramaDetailPage` - `lib/pages/player/open_player.dart` `playDramaFromCatalog()`:`MaterialPageRoute` → `PlayerPage` (首页「观看完整剧集」走这里,筛选页 / 榜单等卡片也复用) - `lib/pages/player/player_logic.dart` `openSeriesAt()`:`MaterialPageRoute` → `PlayerPage` ### 实现 1. 新增 `lib/core/navigation/fade_page_route.dart`: ```dart // Author: fruit.com.cn import 'package:flutter/widgets.dart'; /// 无位移的淡入转场:用于首页 feed 进详情 / 播放页,避免平台左右滑入。 class FadePageRoute extends PageRouteBuilder { FadePageRoute({required WidgetBuilder builder, super.settings}) : super( transitionDuration: const Duration(milliseconds: 220), reverseTransitionDuration: const Duration(milliseconds: 180), pageBuilder: (context, _, __) => builder(context), transitionsBuilder: (context, animation, _, child) => FadeTransition( opacity: CurvedAnimation(parent: animation, curve: Curves.easeOut), child: child, ), ); } ``` 2. 把上述三处 `MaterialPageRoute` 换成 `FadePageRoute`: - `PlayerLogic.openDetail()` - `playDramaFromCatalog()` - `PlayerLogic.openSeriesAt()` 3. 其它入口(登录页、我的、收藏、观看记录、发现页等)**保持原样**,本批不动。 ### 测试 - 新增 `test/navigation/fade_page_route_test.dart`: - push 后 `transitionDuration == 220ms`、`reverseTransitionDuration == 180ms` - 转场过程中存在 `FadeTransition`,且 `opaque == true` - 现有 player / home 相关测试必须继续通过(若有用例断言 `MaterialPageRoute` 类型,改为断言页面内容而不是路由类型) ### 验收 - 门禁:`dart analyze lib test` 零告警、`flutter test` 全过、`flutter build apk --debug` 成功。 - 真机自查:首页点标题进详情、点观看完整剧集进播放页,均为淡入无左右滑动;返回同样淡出。 ### Git - 从 `develop` 拉 `feat/fade-route-home-feed`。 - 提交:`feat(player): 首页进详情与播放页改为淡入转场`,作者 `Zhou Weidong <502333560@qq.com>`。 - `--no-ff` 合回 `develop` 并 push;`FruitServer/docs/plans/PROGRESS.md` 追加 K75-A 留痕。 ### 约束 - 全程中文;禁止 `git add -A`;只改上述范围;完成后停住等待验收。