@@ -1825,47 +1825,32 @@ class RawScrollbarState<T extends RawScrollbar> extends State<T> with TickerProv
18251825 return ;
18261826 }
18271827
1828- double scrollIncrement;
1829- // Is an increment calculator available?
1830- final ScrollIncrementCalculator ? calculator = Scrollable .maybeOf (
1831- _cachedController! .position.context.notificationContext! ,
1832- )? .widget.incrementCalculator;
1833- if (calculator != null ) {
1834- scrollIncrement = calculator (
1835- ScrollIncrementDetails (
1836- type: ScrollIncrementType .page,
1837- metrics: _cachedController! .position,
1838- ),
1839- );
1840- } else {
1841- // Default page increment
1842- scrollIncrement = 0.8 * _cachedController! .position.viewportDimension;
1843- }
1828+ // Determines the scroll direction.
1829+ final AxisDirection scrollDirection;
18441830
1845- // Adjust scrollIncrement for direction
1846- switch (_cachedController! .position.axisDirection) {
1831+ switch (position.axisDirection) {
18471832 case AxisDirection .up:
1848- if (details.localPosition.dy > scrollbarPainter._thumbOffset) {
1849- scrollIncrement = - scrollIncrement;
1850- }
1851- break ;
18521833 case AxisDirection .down:
1853- if (details.localPosition.dy < scrollbarPainter._thumbOffset) {
1854- scrollIncrement = - scrollIncrement;
1855- }
1856- break ;
1857- case AxisDirection .right:
1858- if (details.localPosition.dx < scrollbarPainter._thumbOffset) {
1859- scrollIncrement = - scrollIncrement;
1834+ if (details.localPosition.dy > scrollbarPainter._thumbOffset) {
1835+ scrollDirection = AxisDirection .down;
1836+ } else {
1837+ scrollDirection = AxisDirection .up;
18601838 }
18611839 break ;
18621840 case AxisDirection .left:
1841+ case AxisDirection .right:
18631842 if (details.localPosition.dx > scrollbarPainter._thumbOffset) {
1864- scrollIncrement = - scrollIncrement;
1843+ scrollDirection = AxisDirection .right;
1844+ } else {
1845+ scrollDirection = AxisDirection .left;
18651846 }
1866- break ;
18671847 }
18681848
1849+ final ScrollableState ? state = Scrollable .maybeOf (position.context.notificationContext! );
1850+ final ScrollIntent intent = ScrollIntent (direction: scrollDirection, type: ScrollIncrementType .page);
1851+ assert (state != null );
1852+ final double scrollIncrement = ScrollAction .getDirectionalIncrement (state! , intent);
1853+
18691854 _cachedController! .position.moveTo (
18701855 _cachedController! .position.pixels + scrollIncrement,
18711856 duration: const Duration (milliseconds: 100 ),
0 commit comments