无论如何,是否可以确定用户在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以获取用户过度滚动的程度。