(以下内容参考<<Android编程权威指南>>书)

一、原理

RecyclerView是ViewGroup的子类,每一个列表项都是作为一个View子对象显示。RecyclerView在创建刚好充满屏幕的列表项View后,在用户滑动屏幕切换试图时,上一个试图会被回收利用。RecyclerView的任务仅限于回收和定位屏幕上的View。列表项View能够显示数据还离不开另外两个类的支持: 

    ViewHolder:负责itemView显示

    Adapter:

                    负责创建ViewHolder;

                    绑定ViewHolder至模型层数据。

具体操作原理如下:

RecyclerView学习

1)调用Adapter的getItemCount()方法, RecyclerView询问数组列表中包含多少个对象

2)RecyclerView调用Adapter的onCreateViewHolder(ViewGroup, int)方法创建ViewHolder及其要显示的视图

3)RecyclerView会传入ViewHolder及其位置,调用onBindViewHolder(ViewHolder,int)方法。 Adapter会找到目标位置的数据并将其绑定到ViewHolder的视图上

二、 使用步骤:

1. 在app的build.gradle中添加依赖:

compile 'com.android.support:recyclerview-v7:21.0.3'

2. 在需要使用的布局中,添加RecyclerView:

RecyclerView学习

3. 为RecyclerView设置布局管理器,控制各个子项间的排列方式:

RecyclerView学习

4. 为RecyclerView创建RecyclerView.Apdater,该adapter最少需要实现下面三个接口:

RecyclerView学习

1) getItemCount中,返回获取有多少个子项

2) onCreateViewHolder中,返回创建的RecyclerView.ViewHolder,该Holder实现具体的子项内容:

在该ViewHolder构造函数中,需传入具体的子项布局,简单的实现如下:

RecyclerView学习


3) onBindViewHolder更新子项数据,将实体数据传递给ViewHolder进行数据更新。











相关文章: