无论如何,是否可以确定用户在Android ListView中具有overscrolled的确切像素数?当用户尝试向上滚动超过第一个列表项,并且过度滚动/反弹动画开始时,我需要检测过度滚动的距离。基本上,我将在该空间中进行一些操作,例如动画折叠,类似于 iPhone 上的Clear应用。

我试过在ListView及其项目(使用getScrollY())上调用getTop()getChildAt(0).getTop,但是一切都返回0。作为引用,我的列表项都是相同的高度。

我还尝试将onScrollListener添加到listview并仅计算ACTION_DOWN上的原始Y pos和ACTION_MOVE上的Y pos之间的差,但似乎listview滚动的速度较慢。

任何帮助将是巨大的。

最佳答案

覆盖此方法呢?

protected boolean overScrollBy (int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)

scrollY将保持为0,但是当isTouchEvent为true时,您可以累积delYY以获取用户过度滚动的程度。

10-07 19:30
查看更多