Обнаружение избыточной прокрутки в 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 вызывается несколько раз?

0 ответов

Другие вопросы по тегам