GroupedRecyclerViewAdapter可以很方便的实现RecyclerView的分组显示,并且每个组都可以包含组头、组尾和子项;可以方便实现多种Type类型的列表,可以实现如QQ联系人的列表一样的列表展开收起功能,还可以实现头部悬浮吸顶功能等。下面先让我们看一下它所能够实现的一些效果:
以上展示的只是GroupedRecyclerViewAdapter能实现的一些常用效果,其实使用GroupedRecyclerViewAdapter还可以很容易的实现一些更加复杂的列表效果。在我的GroupedRecyclerViewAdapter项目的Demo中给出了上面几种效果的实现例子,并且有详细的注释说明,有兴趣的同学可以到我的GitHub下载源码。下面直接讲解GroupedRecyclerViewAdapter的使用。
1、引入依赖
在Project的build.gradle在添加以下代码
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在Module的build.gradle在添加以下代码
implementation 'com.github.donkingliang:GroupedRecyclerViewAdapter:2.0.0'
注意: 从2.0.0版本开始,GroupedRecyclerViewAdapter的依赖迁移至Androidx。如果你的项目还没有迁移或使用Androidx,可以使用1.3.2版本。
2、继承GroupedRecyclerViewAdapter
public class GroupedListAdapter extends GroupedRecyclerViewAdapter {
}
3、实现GroupedRecyclerViewAdapter里的方法
GroupedRecyclerViewAdapter是一个抽象类,它提供了一系列需要子类去实现的方法。
//返回组的数量
public abstract int getGroupCount();
//返回当前组的子项数量
public abstract int getChildrenCount(int groupPosition);
//当前组是否有头部
public abstract boolean hasHeader(int groupPosi