2.8 KiB
2.8 KiB
INBOX
[已处理] K75-A 首页进详情 / 进播放页改为无感淡入
需求
首页 feed:
- 点短剧标题 → 详情页
- 点「观看完整剧集」→ 全屏播放页
现在都是默认的平台转场(iOS 从右往左滑入、Android 缩放),观感突兀。 改成无感淡入:不加左右位移,只做短促的淡入 / 淡出。
现状
lib/pages/player/player_logic.dartopenDetail():MaterialPageRoute→DramaDetailPagelib/pages/player/open_player.dartplayDramaFromCatalog():MaterialPageRoute→PlayerPage(首页「观看完整剧集」走这里,筛选页 / 榜单等卡片也复用)lib/pages/player/player_logic.dartopenSeriesAt():MaterialPageRoute→PlayerPage
实现
- 新增
lib/core/navigation/fade_page_route.dart:
// Author: fruit.com.cn
import 'package:flutter/widgets.dart';
/// 无位移的淡入转场:用于首页 feed 进详情 / 播放页,避免平台左右滑入。
class FadePageRoute<T> extends PageRouteBuilder<T> {
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,
),
);
}
-
把上述三处
MaterialPageRoute换成FadePageRoute:PlayerLogic.openDetail()playDramaFromCatalog()PlayerLogic.openSeriesAt()
-
其它入口(登录页、我的、收藏、观看记录、发现页等)保持原样,本批不动。
测试
- 新增
test/navigation/fade_page_route_test.dart:- push 后
transitionDuration == 220ms、reverseTransitionDuration == 180ms - 转场过程中存在
FadeTransition,且opaque == true
- push 后
- 现有 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;只改上述范围;完成后停住等待验收。