概述
RecyclerView是support:recyclerview-v7中提供的滚动控件,想要使用该控件,需要进行如下工作:
- 引入依赖库
- 在布局文件中加入RecyclerView标签
- 创建单项布局文件
- 创建适配器类
- 在活动中为Recyclerview设置布局管理器(LayoutManager)和适配器
虽谈不上繁杂,但对于记性不好的我来说也是很难完全记住,遂写此笔记。
参考文章
Android RecyclerView 使用完全解析 体验艺术般的控件
一、引入依赖库
implementation 'com.android.support:recyclerview-v7:27.0.2'
二、在布局文件中添加标签
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_mycreation"
android:layout_width="match_parent"
android:layout_height="match_parent" />
三、创建单项布局文件
该布局文件是滚动控件中每一个条目的布局,每个条目的值将在适配器的ViewHolder子类中设置
item_base_use.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="#ddebd774"
android:orientation="vertical"
android:layout_marginBottom="10dp">
<TextView
android:id="@+id/item_tx"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
四、创建适配器类
public class MyRecyclerViewAdapterextends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> list;
public MyAdapter(List<String> list) {
this.list = list;
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// 绑定item布局
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_base_use, parent, false);
MyAdapter.ViewHolder viewHolder = new MyAdapter.ViewHolder(view);
// 可在此为每个item设置事件监听
return viewHolder;
}
@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
// 设置控件的值
String string = list.get(position);
holder.mText.setText(string);
}
@Override
public int getItemCount() {
// 返回list的长度
return list.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
// 控件对象,对应item中的控件
TextView mText;
ViewHolder(View itemView) {
super(itemView);
// 绑定控件
mText = itemView.findViewById(R.id.item_tx);
}
}
}
五、在活动中为Recyclerview设置布局管理器(LayoutManager)和适配器
//通过findViewById拿到RecyclerView实例
mRecyclerView = findViewById(R.id.recyclerView);
//设置RecyclerView管理器
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
//初始化适配器
mAdapter = new MyRecyclerViewAdapter(list);
//设置添加或删除item时的动画,这里使用默认动画
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
//设置适配器
mRecyclerView.setAdapter(mAdapter);