我想在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的事实?