receiveOffset method
dynamic
receiveOffset(
- double offset
)
Implementation
receiveOffset(double offset) {
bool upward = offset > _lastOffset;
_lastOffset = offset;
if (offset < 0) {
if (_isCompleted && _isInProcess) return;
if (_isInProcess == false && _isUserAction) {
_isInProcess = true;
}
if (_headerState == XBRefreshState.loading ||
_headerState == XBRefreshState.complete) {
return;
}
double fitOffset = 0 - offset;
if (fitOffset <= 0) {
return;
}
double top = -widget.headerLoadingOffset + fitOffset;
if (top > 0) {
top = 0;
}
setState(() {
_headerTopPadding = top;
});
if (upward) {
if (_isUserAction) {
_headerUserActionRun(fitOffset);
} else {
setState(() {
_headerState = XBRefreshState.before;
});
}
} else {
if (_isUserAction) {
_headerUserActionRun(fitOffset);
}
}
} else {
_endProcessIfPossible();
}
}