anchor.diff:    void _handleDragStart() {
       if (_fadePerformance.isAnimating)
         return;
  -    _dragUnderway = true;
  -    _dragExtent = 0.0;
  -    _fadePerformance.progress = 0.0;
  +    setState(() {
  +      _dragUnderway = true;
  +      _dragExtent = 0.0;
  +      _fadePerformance.progress = 0.0;
  +    });
     }
   
     void _handleDragUpdate(double scrollOffset) {
  
positive.code:     if (!_isActive || _fadePerformance.isAnimating)
        return;
  
      _dragUnderway = false;
      if (_fadePerformance.isCompleted) {
        _startResizePerformance();
      } else if (_isFlingGesture(velocity)) {
        double flingVelocity = _directionIsYAxis ? velocity.dy : velocity.dx;
        _dragExtent = flingVelocity.sign;
        _fadePerformance.fling(velocity: flingVelocity.abs() * _kFlingVelocityScale);
      } else {
        _fadePerformance.reverse();
      }
    }
  
    void _handleSizeChanged(Size newSize) {
      setState(() {
        _size = new Size.copy(newSize);
      });
    }
  
    Widget build() {
  
negative.code:       _startResizePerformance();
    }
  
    bool get _isActive {
      return _size != null && (_dragUnderway || _fadePerformance.isAnimating);
    }
  