Files
FruitServer/docs/plans/INBOX.md
T

2.8 KiB
Raw Blame History

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:
// 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,
          ),
        );
}
  1. 把上述三处 MaterialPageRoute 换成 FadePageRoute:

    • PlayerLogic.openDetail()
    • playDramaFromCatalog()
    • PlayerLogic.openSeriesAt()
  2. 其它入口(登录页、我的、收藏、观看记录、发现页等)保持原样,本批不动。

测试

  • 新增 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;只改上述范围;完成后停住等待验收。