diff --git a/lib/common/widgets/page/scrollable.dart b/lib/common/widgets/page/scrollable.dart index 23ea2404..86fd1fc8 100644 --- a/lib/common/widgets/page/scrollable.dart +++ b/lib/common/widgets/page/scrollable.dart @@ -925,8 +925,10 @@ class CustomScrollableState extends State _isSliding = false; } } else if (_isSliding == true) { + final from = _downPos!.dx; + final to = localPosition.dx; _animController.value = - (localPosition.dx - _downPos!.dx).abs() / _maxWidth; + math.max(0, _isRTL ? from - to : to - from) / _maxWidth; } } diff --git a/lib/pages/common/slide/common_slide_page.dart b/lib/pages/common/slide/common_slide_page.dart index 77357d95..96621f69 100644 --- a/lib/pages/common/slide/common_slide_page.dart +++ b/lib/pages/common/slide/common_slide_page.dart @@ -1,3 +1,5 @@ +import 'dart:math' show max; + import 'package:PiliPlus/utils/storage_pref.dart'; import 'package:flutter/gestures.dart' show PositionedGestureDetails; import 'package:flutter/material.dart'; @@ -94,8 +96,10 @@ abstract class CommonSlidePageState extends State isSliding = false; } } else if (isSliding == true) { + final from = downPos!.dx; + final to = details.localPosition.dx; _animController!.value = - (details.localPosition.dx - downPos!.dx).abs() / maxWidth; + max(0, _isRTL ? from - to : to - from) / maxWidth; } }