如何从代码中以恒定的速度滚动ListView



我有一个ListView,用户可以拖放列表元素来重新排序列表(android 3.0)。但是,我必须处理列表很长的情况,并且用户必须能够在拖动项目时滚动列表。我在屏幕上放了两个滚动区,一个在上面,一个在下面。当用户将一个项目拖到这些区域时,ListView应该开始以恒定的速度向上/向下滚动,只要被拖拽的项目在这些区域。

我如何实现这个滚动与ListView?

我尝试了smoothScroll…()方法,但它们需要在列表中滚动到一个特定的位置,或者一个特定的距离来滚动。标准的scrollBy…()方法也不起作用,它们滚动ListView,但似乎不会使其失效,因此出现的行不会被渲染。

任何想法?

您可以试试listView1.smoothScrollByOffset(int viewPosition)。这样你就可以让listview上下滚动1+个视图的间隔

您可以尝试smoothScrollToPositionFromTop(int position, int offset, int duration),根据滚动的位置设置不同的持续时间,例如

int duration = position*100;

最新更新