diff --git a/lib/common/widgets/scroll_physics.dart b/lib/common/widgets/scroll_physics.dart index 88773c6b..ddf7a6f0 100644 --- a/lib/common/widgets/scroll_physics.dart +++ b/lib/common/widgets/scroll_physics.dart @@ -1,3 +1,4 @@ +import 'package:PiliPlus/pages/member_video/controller.dart'; import 'package:PiliPlus/utils/storage_pref.dart'; import 'package:flutter/material.dart'; @@ -46,11 +47,14 @@ class CustomTabBarViewClampingScrollPhysics extends ClampingScrollPhysics { } class MemberVideoScrollPhysics extends AlwaysScrollableScrollPhysics { - const MemberVideoScrollPhysics({super.parent}); + const MemberVideoScrollPhysics({super.parent, required this.controller}); + + final MemberVideoCtr controller; @override MemberVideoScrollPhysics applyTo(ScrollPhysics? ancestor) { - return MemberVideoScrollPhysics(parent: buildParent(ancestor)); + return MemberVideoScrollPhysics( + parent: buildParent(ancestor), controller: controller); } @override @@ -60,7 +64,8 @@ class MemberVideoScrollPhysics extends AlwaysScrollableScrollPhysics { required bool isScrolling, required double velocity, }) { - if (newPosition.maxScrollExtent < oldPosition.maxScrollExtent) { + if (controller.reload) { + controller.reload = false; return 0; } return super.adjustPositionForNewDimensions( diff --git a/lib/pages/member_video/controller.dart b/lib/pages/member_video/controller.dart index 04cc7aa8..ac453278 100644 --- a/lib/pages/member_video/controller.dart +++ b/lib/pages/member_video/controller.dart @@ -213,8 +213,11 @@ class MemberVideoCtr } } + bool reload = false; + @override Future onReload() { + reload = true; isLocating.value = null; return super.onReload(); } diff --git a/lib/pages/member_video/view.dart b/lib/pages/member_video/view.dart index 95b0f772..850331cf 100644 --- a/lib/pages/member_video/view.dart +++ b/lib/pages/member_video/view.dart @@ -65,7 +65,7 @@ class _MemberVideoState extends State refreshIndicator( onRefresh: _controller.onRefresh, child: CustomScrollView( - physics: const MemberVideoScrollPhysics(), + physics: MemberVideoScrollPhysics(controller: _controller), slivers: [ SliverPadding( padding: EdgeInsets.only(