有一个多月没写原创博客了,今天来介绍一下使用RecyclerView来实现分组列表。之所以使用RecyclerView,主要原因还是因为项目开发中使用ExpandableListView无法实现设计师所需要的分割线。
本篇内容偏简单,主要是讲如何集成使用。这一使用场景还是相对常见而实用的,较适合初学者进阶。
实现原因及效果
在上一次的项目版本迭代中,有使用到分组列表,但是Android自带的ExpandableListView
无法实现设计师的设计图效果。设计图中,每一组,组的标题与每一项,以及每一项之间的分割线都是不同的,所以我便借助于RecyclerView
的灵活性来实现,demo运行效果图如下:
如何使用
我已经将实现结果封装为一个库,项目地址为:https://github.com/msdx/group-recycler-adapter ,使用过程有任何疑问或想增加功能,都可以到上面提issue。
接下来只需要两步,即可快速把分组功能集成到项目中。
声明依赖
第一步是声明依赖。
首先确保在项目根目录中的build.gradle中声明了jcenter
,如下:
allprojects {
repositories {
jcenter()
}
}
然后在项目中添加如下依赖:
compile 'com.githang:group-recycler-adapter:0.1'
实现分组
示例的完整代码见:https://github.com/msdx/group-recycler-adapter/tree/master/app 。
首先实现分组标题的ViewHolder
,以及子项的ViewHolder
,然后使用library里的GroupRecyclerAdapter
类,创建其实例并实现其中的抽象方法,将数据传入,代码如下:
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(