Merge pull request #1183 from Hixie/dismissable
Be more explicit about what's state in dismissable
This commit is contained in:
commit
63d3b6db95
@ -75,14 +75,6 @@ class Dismissable extends StatefulComponent {
|
|||||||
_startResizePerformance();
|
_startResizePerformance();
|
||||||
}
|
}
|
||||||
|
|
||||||
Point get _activeCardDragEndPoint {
|
|
||||||
if (!_isActive)
|
|
||||||
return Point.origin;
|
|
||||||
assert(_size != null);
|
|
||||||
double extent = _directionIsYAxis ? _size.height : _size.width;
|
|
||||||
return new Point(_dragExtent.sign * extent * _kDismissCardThreshold, 0.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool get _isActive {
|
bool get _isActive {
|
||||||
return _size != null && (_dragUnderway || _fadePerformance.isAnimating);
|
return _size != null && (_dragUnderway || _fadePerformance.isAnimating);
|
||||||
}
|
}
|
||||||
@ -120,9 +112,11 @@ class Dismissable extends StatefulComponent {
|
|||||||
void _handleDragStart() {
|
void _handleDragStart() {
|
||||||
if (_fadePerformance.isAnimating)
|
if (_fadePerformance.isAnimating)
|
||||||
return;
|
return;
|
||||||
_dragUnderway = true;
|
setState(() {
|
||||||
_dragExtent = 0.0;
|
_dragUnderway = true;
|
||||||
_fadePerformance.progress = 0.0;
|
_dragExtent = 0.0;
|
||||||
|
_fadePerformance.progress = 0.0;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _handleDragUpdate(double scrollOffset) {
|
void _handleDragUpdate(double scrollOffset) {
|
||||||
@ -149,8 +143,14 @@ class Dismissable extends StatefulComponent {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldDragExtent.sign != _dragExtent.sign)
|
if (oldDragExtent.sign != _dragExtent.sign) {
|
||||||
setState(() {}); // Rebuild to update the new drag endpoint.
|
setState(() {
|
||||||
|
// Rebuild to update the new drag endpoint.
|
||||||
|
// The sign of _dragExtent is part of our build state;
|
||||||
|
// the actual value is not, it's just used to configure
|
||||||
|
// the performances.
|
||||||
|
});
|
||||||
|
}
|
||||||
if (!_fadePerformance.isAnimating)
|
if (!_fadePerformance.isAnimating)
|
||||||
_fadePerformance.progress = _dragExtent.abs() / (_size.width * _kDismissCardThreshold);
|
_fadePerformance.progress = _dragExtent.abs() / (_size.width * _kDismissCardThreshold);
|
||||||
}
|
}
|
||||||
@ -188,16 +188,18 @@ class Dismissable extends StatefulComponent {
|
|||||||
if (!_isActive || _fadePerformance.isAnimating)
|
if (!_isActive || _fadePerformance.isAnimating)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_dragUnderway = false;
|
setState(() {
|
||||||
if (_fadePerformance.isCompleted) {
|
_dragUnderway = false;
|
||||||
_startResizePerformance();
|
if (_fadePerformance.isCompleted) {
|
||||||
} else if (_isFlingGesture(velocity)) {
|
_startResizePerformance();
|
||||||
double flingVelocity = _directionIsYAxis ? velocity.dy : velocity.dx;
|
} else if (_isFlingGesture(velocity)) {
|
||||||
_dragExtent = flingVelocity.sign;
|
double flingVelocity = _directionIsYAxis ? velocity.dy : velocity.dx;
|
||||||
_fadePerformance.fling(velocity: flingVelocity.abs() * _kFlingVelocityScale);
|
_dragExtent = flingVelocity.sign;
|
||||||
} else {
|
_fadePerformance.fling(velocity: flingVelocity.abs() * _kFlingVelocityScale);
|
||||||
_fadePerformance.reverse();
|
} else {
|
||||||
}
|
_fadePerformance.reverse();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _handleSizeChanged(Size newSize) {
|
void _handleSizeChanged(Size newSize) {
|
||||||
@ -206,6 +208,14 @@ class Dismissable extends StatefulComponent {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Point get _activeCardDragEndPoint {
|
||||||
|
if (!_isActive)
|
||||||
|
return Point.origin;
|
||||||
|
assert(_size != null);
|
||||||
|
double extent = _directionIsYAxis ? _size.height : _size.width;
|
||||||
|
return new Point(_dragExtent.sign * extent * _kDismissCardThreshold, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
Widget build() {
|
Widget build() {
|
||||||
if (_resizePerformance != null) {
|
if (_resizePerformance != null) {
|
||||||
AnimatedValue<double> squashAxisExtent = new AnimatedValue<double>(
|
AnimatedValue<double> squashAxisExtent = new AnimatedValue<double>(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user