Android控件之RecyclerView的使用浅析

一、RecyclerView的由来

       在Android5.0以前,在展示大量数据时,通常采用ListView控件,以纵向的方式呈现。但是在Android5.0开始,谷歌公司提供了一个供大量数据展示的新控件RecyclerView,来代替传统的ListView,使用更加灵活、简单,而且RecyclerView展现出了非常好的可扩展性。RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能。

       同时,RecyclerView也并非完全的替代ListView,从ListView未被标注@Deprecated可知,二者使用的场景有不同的地方。与ListView相比,RecyclerView具有以下优点:

       1、RecyclerView封装了ViewHolder的回收复用,省略了convertView.setTag(holder)和convertView.getTag()这些步骤,写起来更加简单

       2、引入了布局管理器,来管理item的显示方式,横向、纵向、瀑布流方式

       3、可设置item的间隔样式(可绘制),通过继承RecyclerView的ItemDecoration这个类,然后针对自己的业务需求去书写代码。

       4、可以控制item增删的动画,可以通过ItemAnimator这个类进行控制。当然针对增删的动画,RecyclerView有其自己默认的实现

二、RecyclerView的使用

       1、由于RecyclerView是support-V7包中的组件,在使用时要先引入(以AndroidStudio为例)

         (1)新建一个项目,打开File--->Project Structure,如下图继续:

            

Android控件之RecyclerView的使用浅析

        (2)点击上图2的加号后,选1(Library Dependency),在输入框中输入recyclerview,点击搜索,如下图:

       

Android控件之RecyclerView的使用浅析

         选中第一项androidx.recyclerview,点击OK,则成功引入依赖了。

 2、(1)在布局文件中引入,要指明详细出处

Android控件之RecyclerView的使用浅析

          (2) 新建item的布局文件和实体对象类

          (3)创建适配器adapter,为RecyclerView提供数据。

 

Android控件之RecyclerView的使用浅析

         如上图:

               a、创建adapter类:适配器继承了RecyclerView.Adapter<ViewHolder>

               b、创建ViewHolder:在adapter类中新建了一个继承RecyclerView.ViewHolder的静态内部类

               c、实现了3个方法:

                     onCreateViewHolder():在该方法中为每个item inflater出一个view,然后把view封装在ViewHolder中

                    onBindViewHolder():为每一个item渲染数据

                    getItemCount():item的数量

     3、在activity中设置RecyclerView:

Android控件之RecyclerView的使用浅析

   由上图可看到:

      (1) 对RecyclerView的声明

      (2)布局管理器:LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManager(瀑布流布局管理器)

                       LinearLayoutManager:setOrientation(),设置横向或纵向滑动

                      GridLayoutManager: 注意参数(列的个数)

                      StaggeredGridLayoutManager:这个大家有兴趣了写写看

 

以上浅谈了一下RecyclerView的由来、优点及用法,仅供大家学习参考。