Return the newScrollOffset
clamped according to edge and scrollable
's
scroll behavior. The value of newScrollOffset
defaults to scrollable.scrollOffset
.
Source
double clampScrollOffset(ScrollableState scrollable, [double newScrollOffset]) { final double scrollOffset = newScrollOffset ?? scrollable.scrollOffset; final double minScrollOffset = scrollable.scrollBehavior.minScrollOffset; final double maxScrollOffset = scrollable.scrollBehavior.maxScrollOffset; switch (edge) { case ScrollableEdge.both: return scrollOffset.clamp(minScrollOffset, maxScrollOffset); case ScrollableEdge.leading: return scrollOffset.clamp(minScrollOffset, double.INFINITY); case ScrollableEdge.trailing: return scrollOffset.clamp(double.NEGATIVE_INFINITY, maxScrollOffset); case ScrollableEdge.none: return scrollOffset; } return scrollOffset; }