recycleview实现垂直循环滚动
时间: 2023-09-04 07:15:38 浏览: 140
要实现RecyclerView的垂直循环滚动,可以使用LinearLayoutManager和自定义RecyclerView.Adapter。具体步骤如下:
1. 在布局文件中添加RecyclerView控件,并设置LinearLayoutManager为其布局管理器:
```
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingTop="16dp"
android:paddingBottom="16dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:orientation="vertical" />
```
2. 创建自定义的RecyclerView.Adapter,这里假设数据源为List<String>,并实现以下两个方法:
```
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
public MyAdapter(List<String> data) {
mData = data;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
String text = mData.get(position % mData.size());
holder.textView.setText(text);
}
@Override
public int getItemCount() {
return Integer.MAX_VALUE;
}
static class ViewHolder extends RecyclerView.ViewHolder {
TextView textView;
ViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textView);
}
}
}
```
其中,onCreateViewHolder方法用于创建ViewHolder实例,onBindViewHolder方法用于设置ViewHolder中的数据,getItemCount方法返回一个非常大的数值,以保证RecyclerView可以无限滚动。
3. 在Activity或Fragment中设置RecyclerView的Adapter:
```
List<String> data = new ArrayList<>();
data.add("item1");
data.add("item2");
data.add("item3");
// ...
MyAdapter adapter = new MyAdapter(data);
recyclerView.setAdapter(adapter);
```
这样就可以实现RecyclerView的垂直循环滚动了。
阅读全文