RecyclerView+BaseRecyclerViewAdapterHelper的基本使用

Posted 静思浅行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RecyclerView+BaseRecyclerViewAdapterHelper的基本使用相关的知识,希望对你有一定的参考价值。

RecyclerView是google2014年推出 替代ListView 和GridView, RecyclerView内部维护了ViewHolder,所以在性能上比ListView 和GridView性能更高。

RecyclerView放在V7兼容包中,使用时需要依赖相应的V7包。

         LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
//      linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
//      GridLayoutManager gridLayoutManager = new GridLayoutManager(this,3);
        StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(staggeredGridLayoutManager);
//      recyclerView.setHasFixedSize(true);
        MyRecyclerAdapter adapter = new MyRecyclerAdapter(datas);
        recyclerView.setAdapter(adapter);


gitHub上的开源项目BaseRecyclerViewAdapterHelper ,它可以帮助我们更好的使用RecyclerView,特点:

优化Adapter代码(减少百分之70%代码) 
添加点击item点击、长按事件、以及item子控件的点击事件 
添加加载动画(一行代码轻松切换5种默认动画) 
添加头部、尾部、下拉刷新、上拉加载(感觉又回到ListView时代) 
设置自定义的加载更多布局 
添加分组(随心定义分组头部) 
自定义不同的item类型(简单配置、无需重写额外方法) 
设置空布局(比Listview的setEmptyView还要好用!) 
添加拖拽item

如何使用它?

先在 build.gradle 的 repositories 添加:

   allprojects 
        repositories 
            ...
            maven  url "https://jitpack.io" 
        
    
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

然后增加dependencies

dependencies 
   compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.27'

一.实现多种样式Item布局

   1.首先data的实体类implementsMultiItemEntity接口

 并实现getItemType()方法,该方法返回当前Item的类型。

 


2.自定义adapter继承 BaseMultiItemQuickAdapter类,并在构造方法中使用addItemType(type,layout)添加每个类型所对应的布局文件


3.在adapter的convert方法中通过BaseViewHolder.getItemViewType()获取当前条目的类型,进行相应的逻辑处理。



二.实现分组布局

1.新建一个实体类 extendsSectionEntity并提供两个构造方法,一个用于创建 “分组标题”一个用于创建“分组内容”


2.新建adapter 继承 BaseSectionQuickAdapter 


 head 的布局文件ID 、section的布局文件ID和数据集

在convertHeadr()方法中初始化每个head内容。


在convert中初始化每个section内容。



未完待续...



以上是关于RecyclerView+BaseRecyclerViewAdapterHelper的基本使用的主要内容,如果未能解决你的问题,请参考以下文章

RecyclerView详解

RecyclerView

RecyclerView嵌套RecyclerView问题

RecyclerView小结

RecyclerView系列:RecyclerView嵌套RecyclerView(BaseRecyclerViewAdapterHelper实现)

recyclerview怎么监听滑动事件