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,如下图继续:

            

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

       

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

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

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

          (3)创建适配器adapter,为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:

   由上图可看到:

      (1) 对RecyclerView的声明

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

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

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

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

 

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

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值