要实现多个水平RecyclerView一起滚动,可以使用NestedScrollView和RecyclerView的联合使用。
首先,在布局文件中使用NestedScrollView包裹所有的RecyclerView,如下所示:
然后,在代码中分别初始化RecyclerView,并设置水平布局管理器和适配器,如下所示:
// 第一个RecyclerView
RecyclerView recyclerView1 = findViewById(R.id.recycler_view1);
recyclerView1.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
recyclerView1.setAdapter(adapter1);
// 第二个RecyclerView
RecyclerView recyclerView2 = findViewById(R.id.recycler_view2);
recyclerView2.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
recyclerView2.setAdapter(adapter2);
// 其他RecyclerView的初始化
最后,设置NestedScrollView的滚动监听器,在滚动时通过代码来控制所有RecyclerView一起滚动,如下所示:
NestedScrollView nestedScrollView = findViewById(R.id.nested_scroll_view);
nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
recyclerView1.scrollBy(scrollX - oldScrollX, 0);
recyclerView2.scrollBy(scrollX - oldScrollX, 0);
// 其他RecyclerView的滚动
}
});
通过以上步骤,就可以实现多个水平RecyclerView一起滚动的效果了。