【问题标题】:Automatically scroll RecyclerView horizontally自动水平滚动 RecyclerView
【发布时间】:2019-09-03 11:28:49
【问题描述】:

我在 recyclerview 中显示了一个水平方向的项目列表。现在我想在加载项目时自动滚动recyclerview,并且它应该像循环一样继续。我怎样才能实现这种机制。

【问题讨论】:

  • 查看recyclerview的scrollToPosition()函数

标签: android android-recyclerview


【解决方案1】:

为此使用句柄

final int speed = 5000; // delay time 
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
int count = 0;
boolean flag = true;
@Override
public void run() {
    if(count < adapter.getItemCount()){
        if(count==adapter.getItemCount()-1){
            flag = false;
        }else if(count == 0){
            flag = true;
        }
        if(flag) count++;
        else count--;

        recyclerView.smoothScrollToPosition(count);
        handler.postDelayed(this,speed);
    }
   }
   };

 handler.postDelayed(runnable,speed);

【讨论】:

    【解决方案2】:

    首先,如果要循环,可以覆盖recyclerview适配器getItemCount(),返回Integer.MAX_VALUE

    第二,如果你只想滚动,你可以获取Butt的anwser以供参考。 但是,如果你想要平滑滚动。幸运的是,Recyclerview 支持它,你可以看到 LayoutManager smoothScrollToPosition(),您可以自定义您的SmoothScroller 或参考LinearSmoothScroller

    【讨论】: