opt ScrollBehavior

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-07-23 20:00:00 +08:00
parent fa75f5c542
commit 47aaa28898
8 changed files with 54 additions and 17 deletions

View File

@@ -5,6 +5,8 @@ import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/flutter/text_field/controller.dart';
import 'package:PiliPlus/common/widgets/pair.dart';
import 'package:PiliPlus/common/widgets/scroll_behavior.dart'
show NoOverscrollIndicator;
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
import 'package:PiliPlus/common/widgets/sliver/sliver_floating_header.dart';
import 'package:PiliPlus/common/widgets/sliver/sliver_to_box_adapter.dart';
@@ -412,6 +414,7 @@ class _DynamicDetailPageState
return Padding(
padding: EdgeInsets.symmetric(horizontal: padding),
child: NestedScrollView(
scrollBehavior: const NoOverscrollIndicator(),
headerSliverBuilder: (context, innerBoxIsScrolled) {
return [
SliverToBoxWithOffsetAdapter(

View File

@@ -1,6 +1,8 @@
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
import 'package:PiliPlus/common/widgets/keep_alive_wrapper.dart';
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
import 'package:PiliPlus/common/widgets/scroll_behavior.dart'
show NoOverscrollIndicator;
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
import 'package:PiliPlus/common/widgets/sliver/sliver_pinned_header.dart';
import 'package:PiliPlus/models/common/live/live_dm_silent_type.dart';
@@ -93,6 +95,7 @@ class _LiveDmBlockPageState extends State<LiveDmBlockPage> {
isPortrait
? ExtendedNestedScrollView(
onlyOneScrollInBody: true,
scrollBehavior: const NoOverscrollIndicator(),
headerSliverBuilder: (context, innerBoxIsScrolled) {
return [
SliverToBoxAdapter(child: left),

View File

@@ -7,6 +7,8 @@ import 'package:PiliPlus/common/widgets/dialog/report_member.dart';
import 'package:PiliPlus/common/widgets/dynamic_sliver_app_bar/dynamic_sliver_app_bar.dart';
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
import 'package:PiliPlus/common/widgets/scroll_behavior.dart'
show NoOverscrollIndicator;
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
import 'package:PiliPlus/http/live.dart';
import 'package:PiliPlus/http/loading_state.dart';
@@ -92,8 +94,9 @@ class _MemberPageState extends State<MemberPage> {
() => switch (_userController.loadingState.value) {
Loading() => m3eLoading,
Success(:final response) => ExtendedNestedScrollView(
key: _userController.scrollKey,
onlyOneScrollInBody: true,
key: _userController.scrollKey,
scrollBehavior: const NoOverscrollIndicator(),
pinnedHeaderSliverHeightBuilder: () =>
kToolbarHeight + MediaQuery.viewPaddingOf(context).top,
headerSliverBuilder: (context, innerBoxIsScrolled) {

View File

@@ -8,6 +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_behavior.dart'
show NoOverscrollIndicator;
import 'package:PiliPlus/common/widgets/scroll_physics.dart'
show tabBarView, platformAlwaysClampingPhysics, platformClampingPhysics;
import 'package:PiliPlus/common/widgets/sliver/video_header.dart';
@@ -520,6 +522,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
physics: platformClampingPhysics,
key: videoDetailController.scrollKey,
controller: videoDetailController.scrollCtr,
scrollBehavior: const NoOverscrollIndicator(),
pinnedHeaderSliverHeightBuilder: () {
double pinnedHeight = this.isFullScreen || !isPortrait
? maxHeight - (isWindowMode && !isPortrait ? 0 : padding.top)