anchor.diff:      setState(() {
         _activeCardIndex = cardIndex;
         _activeCardDragUnderway = true;
  -      _activeCardAnchorX = null;
  +      _activeCardDragX = 0.0;
         _activeCardAnimation.progress = 0.0;
       });
     }
  
positive.code:   }
  
    int _activeCardIndex = -1;
    double _activeCardAnchorX;
    AnimationPerformance _activeCardAnimation;
    double _activeCardWidth;
    bool _activeCardDragUnderway = false;
    Set<int> _dismissedCardIndices = new Set<int>();
  
    double get _activeCardOpacity => 1.0 - _activeCardAnimation.progress;
  
    double get _activeCardOffset {
      return _activeCardAnimation.progress * _activeCardWidth * _kDismissCardThreshold;
    }
  
    void _handleAnimationProgressChanged(_) {
  
negative.code:     if (_activeCardWidth == null || _activeCardIndex < 0)
        return;
  
      _activeCardDragX += event.dx;
      setState(() {
        if (!_activeCardAnimation.isAnimating)
          _activeCardAnimation.progress = _activeCardDragX.abs() / (_activeCardWidth * _kDismissCardThreshold);
      });
    }
  
  