Java Android列表视图:获取过卷距离

Java Android列表视图:获取过卷距离,java,android,listview,mobile,Java,Android,Listview,Mobile,在Android ListView中,是否有任何方法可以确定用户的过卷的确切像素数?当用户试图向上滚动第一个列表项,并且过卷/反弹动画启动时,我需要检测过卷距离。基本上,我将在这个空间里做一些事情,比如动画中的折叠,类似于iPhone上的应用程序 我尝试在我的ListView上调用getScrollY()和getTop(),以及它的项(使用getChildAt(0).getTop),但所有操作都返回0。作为参考,我的列表项目都是相同高度的 我还尝试将onScrollListener添加到列表视图

在Android ListView中,是否有任何方法可以确定用户的
过卷的确切像素数?当用户试图向上滚动第一个列表项,并且过卷/反弹动画启动时,我需要检测过卷距离。基本上,我将在这个空间里做一些事情,比如动画中的折叠,类似于iPhone上的应用程序

我尝试在我的ListView上调用
getScrollY()
getTop()
,以及它的项(使用
getChildAt(0).getTop
),但所有操作都返回0。作为参考,我的列表项目都是相同高度的

我还尝试将
onScrollListener
添加到
列表视图
,只计算
ACTION\u DOWN
上的原始Y位置与
ACTION\u MOVE
上的Y位置之间的差异,但
列表视图
的滚动速度似乎较慢


任何帮助都会很好

经过大量的挖掘,甚至更多的挫折,答案似乎是你不能。更令人恼火的是,我看了一下Android,发现我需要的代码都很好地隐藏在AblistView的内部gubbings中。但这一切并没有失去。似乎可以使用AblistView作为向导构建自己的视图,并在其中执行所需操作。这比我想要的还要冗长,不过就这样吧。我还发现了一个关于如何构建自己的视图的好方法,在这个方法中,你可以做任何你想做的事情

编辑


我终于有了一个在Github上运行的演示。如果你感兴趣,你可以找到它。从顶部向下拉时,新视图将向内旋转,如果放开或向上滚动,视图将向外旋转。

覆盖此方法如何


滚动条将保持为0,但当isTouchEvent为true时,您可以累积deltaY,以获得用户过度滚动的程度

一开始,我想我可以在ONOVERSCROLED时越过CROLL距离, 但是在onOverScrolled中(intScrollX,intScrollY,booleanClampedX,booleanClampedY)

scrollX要么为0,要么为maxOverScrollDistence

因此,你不能在那里获得超长距离

但是你可以在

受保护的布尔overScrollBy(int deltaX、int deltaY、int scrollX、int scrollRangeX、int scrollRangeY、int maxOverScrollX、int maxoverscroly、boolean isTouchEvent)

例如,如果您的scrollview垂直滚动, 然后


如果(deltaY+scrollYHi-Bo,这很有趣,我确实重写了这个方法,最初认为它没有用,因为scrollY总是显示为0-如果有机会,我将查看deltaY参数;顺便说一句,我已经使用上面的链接创建了一个自定义列表视图,并取得了巨大的成功,我打算将它发布到git上。)我可能会写一篇简短的博客文章,我会链接到这里。谢谢