Future<Null> fling(double scrollVelocity)

If scrollVelocity is greater than PixelScrollTolerance.velocity then fling the scroll offset with the given velocity in logical pixels/second. Otherwise, if this scrollable is overscrolled or a snapOffsetCallback was given, animate the scroll offset to its final value with settleScrollOffset.

Calling this function starts a physics-based animation of the scroll offset with the given value as the initial velocity. The physics simulation is determined by the scroll behavior.

The returned Future completes when the scrolling animation is complete.

Source

Future<Null> fling(double scrollVelocity) {
  if (scrollVelocity.abs() > kPixelScrollTolerance.velocity)
    return _startToEndAnimation(scrollVelocity);

  // If a scroll animation isn't underway already and we're overscrolled or we're
  // going to have to snap the scroll offset, then animate the scroll offset to its
  // final value.
  if (!_controller.isAnimating &&
      (shouldSnapScrollOffset || !_scrollOffsetIsInBounds(scrollOffset)))
    return settleScrollOffset();

  return new Future<Null>.value();
}