那么有了ListView、GridView为什么还需要RecyclerView这样的控件呢?


整体上看RecyclerView架构,提供了一种 插拔式 的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果。


  • 你想要控制其显示的方式,请通过布局管理器LayoutManager
  • 你想要控制Item间的间隔(可绘制),请通过ItemDecoration
  • 你想要控制Item增删的动画,请通过ItemAnimator
  • 你想要控制点击、长按事件,请自己写!

为了使用RecyclerView控件,我们需要创建一个Adapter和一个LayoutManager:


Adapter:集成自RecyclerView.Adapetr类,主要用来将数据和布局item进行绑定。


LayoutManager:布局管理器,设置每一项view在RecyclerView中的位置布局以及控件item view的显


RecyclerView提供了三种内置的LayoutManager:


  1. LinearLayoutManager:线性布局,横向或者纵向滑动列表
  2. GridLayoutManager:表格布局
  3. StaggeredGridLayoutManager:流式布局

Animations(动画)效果:


RecyclerView对于Item的添加和删除是默认开启动画的。我们当然也可以通过RecyclerView.ItemAnimator类定制动画,然后通过RecyclerView.setItemAnimator()方法来进行使用。













 RecyclerView 是在Android5.0之后推出的,是一个比ListView更加灵活更加高效的适配器类型控件。但是RecyclerView不同于其他类型的适配器,它还需要一个LayoutManager进行页面控制展示。RecyclerView提供了三种布局管理器:


  1、LinearLayoutManager:线性布局管理器,支持水平和垂直效果。


  2、GridLayoutManager:网格布局管理器,支持水平和垂直效果。


  3、StaggeredGridLayoutManager:分布型管理器,瀑布流效果



RecyclerView的使用:


  1、引入RecyclerView依赖包,V7下的,兼容到API17.


  2、在xml布局中声明,在Java代码中初始化。


  3、 设置布局管理器


  4、创建适配器,设置数据源,绑定适配器


    具体创建适配器:①创建一个类,继承RecyclerView.Adapter<ViewHolder>.


            ②创建一个类ViewHolder,继承RecyclerView。VIewHolder,该类需要创建一个匹配父类的构造。


            ③重写适配器中的方法:getItemCount():获取数据源的个数(item的数量);onCreateViewHolder():该方法中导入布局,实例化VIewHolder;onBindViewHolder():绑定VIewHolder,加载数据。


注意一点:RecyclerView的LinearLayoutManager不同于一般的适配器的布局,RecyclerView的item最外层的布局参数是有效的,如高度宽度等,所以在使用的时候,第一种方法是在导入View的时候指定没有parent(不推荐使用),第二种方法是在item布局的最外层指定具体的参数。


RecyclerView 为开发者提供了强大的复用机制,但是所有的点击事件都丢了,没有提供默认的点击事件,所以需要我们自己为RecyclerView手动实现点击。