Clamp AppBar scroll notifications when ClampOverscrolls is true (#4152)

This commit is contained in:
Hans Muller 2016-05-24 09:37:19 -07:00
parent 3b3db78f8a
commit ff1d3b8190

View File

@ -547,11 +547,17 @@ class ScaffoldState extends State<Scaffold> {
final ScrollableState scrollable = notification.scrollable;
if ((scrollable.config.scrollDirection == Axis.vertical) &&
(config.scrollableKey == null || config.scrollableKey == scrollable.config.key)) {
final double newScrollOffset = scrollable.scrollOffset;
setState(() {
_scrollOffsetDelta = _scrollOffset - newScrollOffset;
_scrollOffset = newScrollOffset;
});
double newScrollOffset = scrollable.scrollOffset;
if (ClampOverscrolls.of(scrollable.context)) {
ExtentScrollBehavior limits = scrollable.scrollBehavior;
newScrollOffset = newScrollOffset.clamp(limits.minScrollOffset, limits.maxScrollOffset);
}
if (_scrollOffset != newScrollOffset) {
setState(() {
_scrollOffsetDelta = _scrollOffset - newScrollOffset;
_scrollOffset = newScrollOffset;
});
}
}
return false;
}