如何从代码中以恒定速度连续滚动ListView?

时间:2011-07-16 14:54:17

标签: android android-listview android-3.0-honeycomb

我有一个ListView,用户可以在其中拖放列表元素以重新排序列表(android 3.0)。但是,当列表很长时,我必须处理这种情况,并且用户必须能够在拖动项目期间滚动它。所以我在屏幕上放了两个滚动区域,一个在顶部,一个在底部。当用户将项目拖动到这些项目上时,ListView应该开始以常量速度向上/向下滚动,只要拖动的项目位于这些区域中。

如何使用ListView实现此滚动?

我尝试过smoothScroll ...()方法,但是它们需要列表中的特定位置才能滚动到,或者需要滚动的特定距离。标准的scrollBy ...()方法也不起作用,它们滚动ListView,但似乎没有正确无效,因此显示的行不会被渲染。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试listView1.smoothScrollByOffset(int viewPosition)。通过这种方式,您可以使列表视图以1 +视图的间隔向上和向下滚动。

答案 1 :(得分:1)

您可以尝试使用不同持续时间的smoothScrollToPositionFromTop(int position, int offset, int duration),具体取决于滚动的位置,例如

int duration = position*100;