为RecyclerView打造通用Adapter 让RecyclerView更加好用

652 查看

一、概述

记得好久以前针对ListView类控件写过一篇打造万能的ListView GridView 适配器,如今RecyclerView异军突起,其Adapter的用法也与ListView类似,那么我们也可以一步一步的为其打造通用的Adapter,使下列用法书写更加简单:

  • 简单的数据绑定(单种Item)
  • 多种Item Type 数据绑定
  • 增加onItemClickListener , onItenLongClickListener
  • 优雅的添加分类header

二、使用方式和效果图

在一步一步完成前,我们先看下使用方式和效果图:

(1)简单的数据绑定

首先看我们最常用的单种Item的书写方式:

是不是相当方便,在convert方法中完成数据、事件绑定即可。

(2)多种ItemViewType

多种ItemViewType,正常考虑下,我们需要根据Item指定ItemType,并且根据ItemType指定相应的布局文件。我们通过MultiItemTypeSupport完成指定:

剩下就简单了,将其作为参数传入到MultiItemCommonAdapter即可。

贴个效果图:

(3)添加分类header

其实属于多种ItemViewType的一种了,只是比较常用,我们就简单封装下。

依赖正常考虑下,这种方式需要额外指定header的布局,以及布局中显示标题的TextView了,以及根据Item显示什么样的标题。我们通过SectionSupport对象指定:

3个方法,一个指定header的布局文件,一个指定布局文件中显示title的TextView,最后一个用于指定显示什么样的标题(根据Adapter的Bean)。

接下来就很简单了: