我想在单击按钮后将recyclerview平滑滚动到两个项目之间的随机位置。通过使用
smoothScrollBy(dx , dy)
我可以找到正确的位置,但无法控制速度/持续时间(太快,我希望让它变慢)。
通过使用
smoothScrollToPosition()
并实施qazxsw poi我可以控制速度,但无法找到正确的位置(两个项目之间不能停止)。
事实上,我正在寻找一种方法来做同样的工作
calculateSpeedPerPixel()
有解决方案吗?
您可能应该将此方法与自定义插值器一起使用:ListView.smoothScrollBy(int distance, int duration).
例如,您可以使用具有不同值的Accelerate Interpolator。尝试改变数字以查看适合您的内容:
smoothScrollBy(int, int, Interpolator)
Mark Allison有一个博客文章系列,解释了如何在您想要滚动到某个位置时自定义和控制持续时间。
smoothScrollBy(dx , dy, new AccelerateInterpolator(2));