docs(plans): 留痕 K75 首页淡入转场
This commit is contained in:
1 parent
ad5b104e0d
commit
60fa96b789
2 files changed
+86
-17
No files matched your search
+57
-17
@@ -1,33 +1,73 @@
|
||||
# INBOX
|
||||
|
||||
## [已处理] K74-A 客户端开发默认地址改为本机地址 10.39.237.1
|
||||
## [已处理] K75-A 首页进详情 / 进播放页改为无感淡入
|
||||
|
||||
### 背景
|
||||
### 需求
|
||||
|
||||
当前 Mac 的 Wi-Fi 地址为 `10.39.237.1`(路由器 10.39.237.58),本机后端已重启并监听 8081,
|
||||
`http://10.39.237.1:8081/app/categories` 返回 200。需要把客户端开发默认地址从公网改回本机。
|
||||
首页 feed:
|
||||
|
||||
### 改动
|
||||
1. 点短剧标题 → 详情页
|
||||
2. 点「观看完整剧集」→ 全屏播放页
|
||||
|
||||
1. `lib/core/config/app_config.dart`
|
||||
- `devHostBaseUrl` 改为 `'http://10.39.237.1:8081'`(不带结尾斜杠)
|
||||
- 注释保持「换网络时只改这一行」的说明
|
||||
- 探测候选去重逻辑保持不变(当前 devHost 与 public 不同,`publicBaseUrl` 仍保留在候选里,
|
||||
顺序仍为 `127.0.0.1 → 10.39.237.1 → 公网`)
|
||||
2. `test/config/server_endpoint_test.dart`
|
||||
- 字面量断言同步改为 `'http://10.39.237.1:8081'`
|
||||
现在都是默认的平台转场(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<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,
|
||||
),
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
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` 成功。
|
||||
- 提供说明:该地址随网络变化,换网时只改 `devHostBaseUrl` 一行。
|
||||
- 真机自查:首页点标题进详情、点观看完整剧集进播放页,均为淡入无左右滑动;返回同样淡出。
|
||||
|
||||
### Git
|
||||
|
||||
- 从 `develop` 拉 `chore/dev-host-local-ip`。
|
||||
- 提交:`chore(config): 开发默认地址改回本机 10.39.237.1`,作者 `Zhou Weidong <502333560@qq.com>`。
|
||||
- `--no-ff` 合回 `develop` 并 push;`FruitServer/docs/plans/PROGRESS.md` 追加 K74-A 留痕。
|
||||
- 从 `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`;除上述两个文件外不改其它内容;完成后停住等待验收。
|
||||
- 全程中文;禁止 `git add -A`;只改上述范围;完成后停住等待验收。
|
||||
Reference in new issue
Block a user