anchor.diff:        .clamp(scrollBehavior.minScrollOffset, scrollBehavior.maxScrollOffset);
     }
   
  -  void _handleDragEnd(sky.Offset velocity) {
  +  void fling(sky.Offset velocity) {
       double scrollVelocity = _scrollVelocity(velocity);
       double newScrollOffset = _snapScrollOffset(scrollOffset + scrollVelocity.sign * itemExtent)
         .clamp(_snapScrollOffset(scrollOffset - itemExtent / 2.0),
  
positive.code:     return scrollTo(newScrollOffset, duration: duration, curve: curve);
    }
  
    void settleScrollOffset() {
      _startToEndAnimation();
    }
  
negative.code:   }
  
    void _handleDragEnd(Offset velocity) {
      fling(velocity);
    }
  
    final List<ScrollListener> _listeners = new List<ScrollListener>();
  