检测NestedScrollView中的过度滚动

时间:2017-07-28 08:41:21

标签: android android-nestedscrollview nestedscrollview overscroll

我想在NestedScrollView中进行垂直过度滚动以触发我的一个方法,该方法在从另一个设备检索数据时显示ContentLoadingProgressBar。

SwipeRefreshLayout小部件对我的应用程序看起来不太好,似乎没有任何方法可以自定义实际动画(请参阅this问题)。

我尝试过继承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 个答案:

没有答案