我希望在 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 被多次调用的事实?