Обнаружение избыточной прокрутки в NestedScrollView
Я хочу, чтобы вертикальная прокрутка в NestedScrollView включала один из моих методов, который отображает ContentLoadingProgressBar при получении данных с другого устройства.
Виджет SwipeRefreshLayout не очень хорошо выглядит с моим приложением, и, похоже, нет никакого способа настроить реальную анимацию (см. Этот вопрос).
Я попытался создать подкласс NestedScrollView и переопределить onOverScrolled:
@Override
public void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if (clampedY && scrollY == 0) {
Log.d("MyNestedScrollView", "Top overscroll detected");
// myTopOverScrollMethod();
} else if (clampedY && scrollY > 0) {
Log.d("MyNestedScrollView", "Bottom overscroll detected");
// myBottomOverScrollMethod();
}
}
Тем не менее, мои сообщения журнала печатаются 5-10 раз за оверролл, так как жест не является мгновенным и требует времени для завершения.
Я ищу способ распознавания жеста с избыточной прокруткой, чтобы отобразить мой ContentLoadingProgressBar, чтобы указать, что данные обновляются.
Есть ли хороший, чистый способ сделать это? Или мне нужно иметь дело с тем, что onOverScrolled вызывается несколько раз?