Recycler 视图中的自动平滑滚动

Posted

技术标签:

【中文标题】Recycler 视图中的自动平滑滚动【英文标题】:Auto smooth scrolling in Recycler view 【发布时间】:2020-03-21 23:08:22 【问题描述】:

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

   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 中解决这个问题。

【问题讨论】:

【参考方案1】:

您可以尝试使用ObjectAnimator

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于Recycler 视图中的自动平滑滚动的主要内容,如果未能解决你的问题,请参考以下文章

当用户将手从屏幕上移开时,如何使 Recycler View 滚动缓慢而流畅?

NestedScrollView 平滑滚动到顶部和内部的视图

降低滚动视图中平滑滚动的速度[重复]

在水平和垂直的recyclerview中膨胀布局,具有recycler视图的FlexboxLayout添加视图水平自动垂直

提高 Android ListView 中的滚动平滑度

单元格中的 UITableView 动画导致平滑滚动中断