docs(plans): 留痕 K31-D 首页频道吸顶
This commit is contained in:
1 parent
02a675a07c
commit
4aa80d0fc7
2 files changed
+57
No files matched your search
@@ -1,3 +1,31 @@
|
||||
## [已处理] 2026-10-20 | K31-D 首页频道行滚动时固定吸顶(仅 App 端)
|
||||
|
||||
**用户指令(2026-10-20,原文)**:
|
||||
> 「上滑的时候 上方的tab要固定」
|
||||
|
||||
**现状**:`lib/pages/home/home_browse_view.dart` 中频道行(热门/免费/新剧/榜单)作为 `_heroWithChannels()` 的一部分放在 `ListView` 内,随列表一起滚动,上滑后会滚出屏幕。
|
||||
|
||||
**口径(只改 Flutter,不动后端、不改接口)**
|
||||
1. 频道行移出滚动内容,固定在列表可视区顶部:
|
||||
- `_body()` 的 `Expanded` 内改为 `Stack`:底层保持 `RefreshIndicator + ListView`(`home-browse-page`),顶层 `Positioned(top: 0, left: 0, right: 0)` 放频道行;
|
||||
- 轮播仍从可视区顶部开始,因此初始状态下频道行依旧悬浮在轮播图上。
|
||||
2. 吸顶样式切换:给 `ListView` 绑定 `ScrollController`,监听滚动偏移:
|
||||
- 偏移 `< AppDimens.heroBannerHeight - 频道行高(44)` 时:保持现状(透明背景、图上白字/未选中 white70、选中主题色);
|
||||
- 偏移 `>=` 该阈值后(轮播已滚出频道行下方):频道行改为不透明背景 `AppColors.ink`、底部 1px `AppColors.border` 分隔线,未选中文字 `AppColors.muted`、选中仍为 `AppColors.blue`,去图上白色;
|
||||
- 阈值不要硬编码 154,直接用 `AppDimens.heroBannerHeight - _channelRowHeight`。
|
||||
3. 无 banner 场景:频道行同样固定吸顶,始终使用非叠加配色(`onSurface`/`muted` + 主题色选中 + `AppColors.ink` 背景)。
|
||||
4. `HomeBrowseHeader`、`RefreshIndicator` 下拉刷新、Key(`home-channels`、`home-channel-*`、`home-channel-underline-*`、`home-browse-page`、`home-hero-banner`)全部保持不变。
|
||||
5. 频道行自身仍可横向滚动;纵向手势不被频道行拦截,保证列表可正常上滑。
|
||||
|
||||
**测试/门禁**
|
||||
- 新增用例:向上滚动 300px 后,`home-channel-hot` 的屏幕 y 坐标与滚动前一致(吸顶),且出现吸顶背景状态(可用新增 Key `home-channels-pinned` 标识);
|
||||
- 既有频道切换、下拉刷新、发现页轮播用例保持通过;
|
||||
- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。
|
||||
|
||||
**流程**:从 `develop` 拉 `feature/flutter-k31-sticky-channels`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。
|
||||
|
||||
---
|
||||
|
||||
## [已处理] 2026-10-20 | K31-C 首页频道选中态改用主题色(仅 App 端)
|
||||
|
||||
**用户指令(2026-10-20,原文)**:
|
||||
|
||||
Reference in new issue
Block a user