(以下内容参考<<Android编程权威指南>>书)
一、原理
RecyclerView是ViewGroup的子类,每一个列表项都是作为一个View子对象显示。RecyclerView在创建刚好充满屏幕的列表项View后,在用户滑动屏幕切换试图时,上一个试图会被回收利用。RecyclerView的任务仅限于回收和定位屏幕上的View。列表项View能够显示数据还离不开另外两个类的支持:
ViewHolder:负责itemView显示
Adapter:
负责创建ViewHolder;
绑定ViewHolder至模型层数据。
具体操作原理如下:
1)调用Adapter的getItemCount()方法, RecyclerView询问数组列表中包含多少个对象
2)RecyclerView调用Adapter的onCreateViewHolder(ViewGroup, int)方法创建ViewHolder及其要显示的视图
3)RecyclerView会传入ViewHolder及其位置,调用onBindViewHolder(ViewHolder,int)方法。 Adapter会找到目标位置的数据并将其绑定到ViewHolder的视图上
二、 使用步骤:
1. 在app的build.gradle中添加依赖:
2. 在需要使用的布局中,添加RecyclerView:
3. 为RecyclerView设置布局管理器,控制各个子项间的排列方式:
4. 为RecyclerView创建RecyclerView.Apdater,该adapter最少需要实现下面三个接口:
1) getItemCount中,返回获取有多少个子项
2) onCreateViewHolder中,返回创建的RecyclerView.ViewHolder,该Holder实现具体的子项内容:
在该ViewHolder构造函数中,需传入具体的子项布局,简单的实现如下:
3) onBindViewHolder更新子项数据,将实体数据传递给ViewHolder进行数据更新。