在Recycler视图中自动平滑滚动

时间:2019-11-26 13:53:52

标签: android android-recyclerview android-handler android-scroll

我使用平滑的recyclerView.smoothScrollBy(int dx , int dy)进行滚动。 将此方法放入处理程序中,每50毫秒调用handler。 我的速度范围是0 - 10。 滚动的Runnable

   private Runnable runnableMove = new Runnable() {
    @Override
    public void run() {
        recyclerView.smoothScrollBy(0,speed * 4);
        handler.postDelayed(this,50);   
   };

突然scrolling开始lagging。而且我必须停止scrolling并重新开始。

这很重要,我要与recycler view中的同一项目同步2台设备以及更多设备(也许是4台,5台),并且我需要它们中任何一个的滚动位置才能将它们同步到一起。

大多数情况下,一两个设备的滚动速度会变慢或变快。我需要所有设备以相同的速度滚动。如何在android中解决此问题。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用ObjectAnimator

ObjectAnimator.ofInt(recyclerView, "scrollY", 1000).setDuration(12000).start()

在所有设备上同时启动此操作,它们应该同步进行,没有任何延迟。

答案 1 :(得分:0)

我找到了这种方法,它对我有用:

recyclerView.smoothScrollBy(dx, dy, new LinearInterpolator(), time);