Files
PiliPlus/lib/scripts/scroll_position.patch
2026-07-22 21:18:32 +08:00

20 lines
1.0 KiB
Diff

diff --git a/packages/flutter/lib/src/widgets/scroll_position_with_single_context.dart b/packages/flutter/lib/src/widgets/scroll_position_with_single_context.dart
index 96d77f67008..85e42540728 100644
--- a/packages/flutter/lib/src/widgets/scroll_position_with_single_context.dart
+++ b/packages/flutter/lib/src/widgets/scroll_position_with_single_context.dart
@@ -127,8 +127,12 @@ class ScrollPositionWithSingleContext extends ScrollPosition implements ScrollAc
@override
void applyUserOffset(double delta) {
- updateUserScrollDirection(delta > 0.0 ? ScrollDirection.forward : ScrollDirection.reverse);
- setPixels(pixels - physics.applyPhysicsToUserOffset(this, delta));
+ final newPixels = pixels - physics.applyPhysicsToUserOffset(this, delta);
+ if (_userScrollDirection == ScrollDirection.idle || (newPixels != setPixels(newPixels) && newPixels >= 0)) {
+ updateUserScrollDirection(
+ delta > 0.0 ? ScrollDirection.forward : ScrollDirection.reverse,
+ );
+ }
}
@override