RecyclerView的使用:
1、在Activity中获取RecyclerView,并设置LayoutManager以及Adapter:
这里LayoutManager是RecyclerView的布局管理器,用以实现Item不同布局排列方式,RecyclerView必须调用setLayoutManager设置布局管理器。RecyclerView中默认带有三个布局管理器:LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManager,这三种布局管理器都支持横向、纵向以及反向滑动
2、Adapter的创建:继承自RecyclerView.Adapter,实现其中的三个方法
扩展:
1、可以实现多种Item的方法:
1)通过onCreateViewHolder方法加载不同的布局,这里的getItemViewType方法就是为了获取Item的Type种类,该方法的返回值就是onCreateViewHolder()方法中viewType的参数值,如果只有一个item类型的话,也就是不使用多item的时候,这个值可以设为null。
2)然后在onBindViewHolder()中调用该方法判断具体要实现哪种Item布局
3)通过onCreateViewHolder方法加载不同的布局,这里的viewType就是上面的getItemViewType方法返回的值
2、如果需要点击响应可以设置item的点击事件
在RecyclerView当中,并没有如同ListView那样并直接提供类似setOnItemClickListener( )和setOnItemLongClickListener ( )的方法。如果要实现Item的点击事件,我们可以自己去实现。
这里给出两种方法:
- 在Adapter里面直接对控件做点击事件
- 写接口,在Activity或Fragment上实现接口中定义的方法
方法一、
3、RecyclerView的三种布局管理器:
RecyclerView通过setLayoutManager设置不同的布局管理器,Item就会按照设置的布局管理器的排列方式来排列。如果不调用setLayoutManager来设置布局管理器就会导致RecyclerView不知道它的Item如何布局,界面上就会一片空白。RecyclerView自身带有三种默认的布局管理器:LinearLayoutManager、GridLayoutManager(网格布局管理器)、StaggeredGridLayoutManager(瀑布流布局管理器)。
在使用RecyclerView时候,必须指定一个适配器Adapter和一个布局管理器LayoutManager。适配器继承RecyclerView.Adapter类,具体实现类似ListView的适配器,取决于数据信息以及展示的UI。布局管理器用于确定RecyclerView中Item的展示方式以及决定何时复用已经不可见的Item,避免重复创建以及执行高成本的findViewById()方法。
6.1.RecyclerView和ListView的区别(这个是必问的)
1.RecyclerView可以完成ListView,GridView的效果,还可以完成瀑布流的效果。同时还可以设置列表的滚动方向(垂直或者水平);
2.RecyclerView中view的复用不需要开发者自己写代码,系统已经帮封装完成了, 也就是说RecyclerView标准化了ViewHolder,编写Adapter面向的是ViewHolder而不再是View了 直接省去了listview中convertView.setTag(holder)和convertView.getTag()这些繁琐的步骤。
3.RecyclerView可以进行局部刷新。
4.RecyclerView提供了API来实现item的动画效果。
5.在性能上:
如果需要频繁的刷新数据,需要添加动画,则RecyclerView有较大的优势。
如果只是作为列表展示,则两者区别并不是很大。
6.3. RecyclerView相比ListView的优点
a.封装了ViewHodler,效率更高
b.可以添加增删Item动画、侧滑功能等
c.支持局部更新,可见才更新,不可见不更新
d.插件式实现,各个功能模块化,解耦性强,使用起来更方便