opt iOS ScrollPhysics

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-07-21 22:37:51 +08:00
parent 43843ca721
commit be07cafb54
14 changed files with 119 additions and 28 deletions

View File

@@ -8,7 +8,8 @@ import 'package:PiliPlus/common/widgets/flutter/pop_scope.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/keep_alive_wrapper.dart';
import 'package:PiliPlus/common/widgets/route_aware_mixin.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart' show tabBarView;
import 'package:PiliPlus/common/widgets/scroll_physics.dart'
show tabBarView, platformAlwaysClampingPhysics, platformClampingPhysics;
import 'package:PiliPlus/common/widgets/sliver/video_header.dart';
import 'package:PiliPlus/common/widgets/svg/play_icon.dart';
import 'package:PiliPlus/models/common/episode_panel_type.dart';
@@ -515,9 +516,10 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
),
),
body: ExtendedNestedScrollView(
onlyOneScrollInBody: true,
physics: platformClampingPhysics,
key: videoDetailController.scrollKey,
controller: videoDetailController.scrollCtr,
onlyOneScrollInBody: true,
pinnedHeaderSliverHeightBuilder: () {
double pinnedHeight = this.isFullScreen || !isPortrait
? maxHeight - (isWindowMode && !isPortrait ? 0 : padding.top)
@@ -1616,9 +1618,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
controller: needCtr
? videoDetailController.effectiveIntroScrollCtr
: null,
physics: !needCtr
? const AlwaysScrollableScrollPhysics(parent: ClampingScrollPhysics())
: null,
physics: !needCtr ? platformAlwaysClampingPhysics : null,
key: const PageStorageKey(CommonIntroController),
slivers: [
SliverPadding(
@@ -1649,11 +1649,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
controller: needCtr
? videoDetailController.effectiveIntroScrollCtr
: null,
physics: !needCtr
? const AlwaysScrollableScrollPhysics(
parent: ClampingScrollPhysics(),
)
: null,
physics: !needCtr ? platformAlwaysClampingPhysics : null,
slivers: [
if (videoDetailController.isUgc) ...[
UgcIntroPanel(