From 04f1f5a73f2f7b5732fad26d168da70e97578e87 Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Thu, 22 Oct 2026 20:19:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(recommend):=20=E6=94=B6=E7=AA=84=E6=8B=96?= =?UTF-8?q?=E5=8A=A8=E6=B8=85=E5=B1=8F=E8=8C=83=E5=9B=B4=E5=B9=B6=E6=8F=90?= =?UTF-8?q?=E5=8D=87=E7=81=B5=E6=95=8F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/PROGRESS.md | 2 +- lib/pages/player/widgets/home_feed_overlay.dart | 5 +++-- .../player/widgets/home_feed_overlay_parts.dart | 1 + test/home/home_preview_layout_test.dart | 14 +++++++++++++- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 4b0b372..8682c22 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -1184,6 +1184,6 @@ $ flutter test - 剧名 19/w600,箭头 20 白色并紧邻剧名;标签行改为 13/w600 亮灰内联布局。 - 简介「展开/收起」沿用现有三语文案;进度条热区恢复 24 并接入拖动自动清屏与预览卡片。 - 拖动仅控制视频浮层内容,顶部导航与根底栏保持常驻。 -- 进度条固定中心并动画到 6 高,时间气泡限制在左右 12;end/cancel/pointer 兜底均恢复拖动前状态。 +- 进度条固定中心并动画到 6 高,命中高度 32,时间气泡限制在左右 12;end/cancel/pointer 兜底均恢复拖动前状态。 - 修复 `scrubCancelRequest` 误置于 `initState` 的编译错误,并清理推荐页未使用变量;`flutter analyze` 无问题。 - 观看全集按钮相对进度条上移 8,间距调整为 20;按钮改为屏幕宽度 70% 左对齐,`flutter analyze` 无问题。 diff --git a/lib/pages/player/widgets/home_feed_overlay.dart b/lib/pages/player/widgets/home_feed_overlay.dart index 6b7fa8f..bd0433b 100644 --- a/lib/pages/player/widgets/home_feed_overlay.dart +++ b/lib/pages/player/widgets/home_feed_overlay.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:video_player/video_player.dart'; @@ -18,11 +19,11 @@ import 'seek_progress_bar.dart'; part 'home_feed_overlay_parts.dart'; const double _progressHeight = 2; -const double _progressHitHeight = 28; +const double _progressHitHeight = 32; const double _pageHorizontal = 14; const double _railRight = 8; const double _railGap = 12; -const double _bottomInfoInset = 20; +const double _bottomInfoInset = 32; const double _railBottomOffset = 60; const List _boostTextShadows = [ Shadow(color: AppColors.shadow, blurRadius: 5, offset: Offset(0, 1)), diff --git a/lib/pages/player/widgets/home_feed_overlay_parts.dart b/lib/pages/player/widgets/home_feed_overlay_parts.dart index 2f16eab..6bf6483 100644 --- a/lib/pages/player/widgets/home_feed_overlay_parts.dart +++ b/lib/pages/player/widgets/home_feed_overlay_parts.dart @@ -129,6 +129,7 @@ class _FeedProgressBarState extends State<_FeedProgressBar> { child: GestureDetector( key: const Key('home-feed-progress'), behavior: HitTestBehavior.opaque, + dragStartBehavior: DragStartBehavior.down, onHorizontalDragStart: interactive ? (details) => _startScrub(details.localPosition.dx / width) : null, diff --git a/test/home/home_preview_layout_test.dart b/test/home/home_preview_layout_test.dart index 0fa0662..600bec6 100644 --- a/test/home/home_preview_layout_test.dart +++ b/test/home/home_preview_layout_test.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'dart:typed_data'; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:shared_preferences_platform_interface/in_memory_shared_preferences_async.dart'; @@ -664,6 +665,11 @@ void main() { ); expect(bar.left, closeTo(overlayRect.left + 14, 0.1)); expect(bar.width, closeTo(overlayRect.width * 0.7, 1)); + expect( + tester.getCenter(find.byKey(const Key('home-feed-progress-track'))).dy - + bar.bottom, + greaterThanOrEqualTo(20), + ); final buttonBackground = tester .widget( @@ -685,7 +691,13 @@ void main() { ); expect( tester.getSize(find.byKey(const Key('home-feed-progress'))).height, - greaterThanOrEqualTo(28), + greaterThanOrEqualTo(32), + ); + expect( + tester + .widget(find.byKey(const Key('home-feed-progress'))) + .dragStartBehavior, + DragStartBehavior.down, ); final idleTrackCenter = tester .getRect(find.byKey(const Key('home-feed-progress-track')))