文章目录
what:RecyclerView是什么
RecyclerView是ListView的增强版,通过LayoutManager对RecyclerView进行布局,可以多种现成的Layoutmanager展示数据,也可以自定义LayoutManager进行布局。比如:
Layoutmanager | 描述 |
---|---|
LinearLayoutManager | 线性形式展示数据,与ListView展示方式一致 |
GridLayoutManager | 网格形式展示数据,可以设置列数 |
StaggeredGridLayoutManager | 瀑布流形式展示数据,可以设置view滑动的方向为横向或者纵向,以及设置列数 |
WHY:为什么使用它,有什么优势?
1、它包含内置ViewHolder,不用再自己造轮子完成整个covertView的复用机制,代码结构更清晰工整。
2、添加横向支持,即可以左右滚动,使用场景更广,比如可以用于Android TV上。
How:怎么用?
RecyclerView使用适配器模式
因为RecyclerView使用了适配器模式,所以为了加深这个View的印象,我们先浅聊一下适配器模式。
Adapter模式(Adapter Pattern):将某个类的接口转换成客户需要的接口表示,能让接口不一致导致不能一起工作的两个类协同工作,又称作包装器模式(Wrapper)
适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。
对象适配器模式的类图:
角色 | 描 述 | Recyclerview使用时角色映射 |
---|---|---|
Target | 目标接口 | RecyclerView.Adapter |
Adaptee | 适配者类 | List要展示的数据 |
Adapter | 适配器类 | MyRecyclerViewAdapter |
Client | 客户端 | RecyclerView |
不过,在RecyclerView中Target不是Interface类型,而是一个抽象类。
RecyclerView使用时的类图
RecyclerView的使用步骤
1、创建MyRecyclerViewAdapter类
该类继承于RecyclerView.Adapter类,构造方法中要传入包含待展示的数据的List对象。
2、创建ViewHolder类
在MyRecyclerViewAdapter类中,创建一个继承于RecyclerView.ViewHolder的MyViewHolder类,在构造方法中获取控件,完成viewholder内声明的控件和xml文件内控件对象的一一绑定。
3、复写onCreateViewHolder方法
加载布局layout.xml,返回MyViewHolder对象
4、复写onBindViewHolder方法
为控件赋值
public class MyViewPagerAdapter