如何在适当的时间内通过两个项目之间的随机位置平滑回收Recyclerview

时间:2017-02-17 17:03:30

标签: java android android-recyclerview smooth-scrolling

我希望在点击按钮后将recyclerview平滑滚动到两个项目之间的随机位置。  使用

smoothScrollBy(dx , dy)

我可以找到正确的位置,但无法控制速度/持续时间(太快,我希望让它变慢)。

使用

smoothScrollToPosition()

并实施calculateSpeedPerPixel()我可以控制速度,但无法找到正确的位置(两个项目之间无法停止)。

事实上,我正在寻找一种方法来完成与

相同的工作
ListView.smoothScrollBy(int distance, int duration).

有解决方案吗?

2 个答案:

答案 0 :(得分:0)

您应该将此方法与自定义插补器一起使用: smoothScrollBy(int, int, Interpolator)

例如,您可以使用具有不同值的Accelerate Interpolator。 尝试更改数字以查看适合您的内容:

x[0]+x[1]+x[2]+x[3]>=1

答案 1 :(得分:0)

马克·艾莉森(Mark Allison)的博客文章系列说明了如何自定义和控制要滚动到某个位置的持续时间。

https://blog.stylingandroid.com/scrolling-recyclerview-part-1/