README
开发过程中总是会遇到实现树形结构的需求,使用ExpandableListView当然是可以实现的,而最近在想使用recyclerview会不会很麻烦呢,首先上github上搜了一下,很多采用了设定不同的viewholder和onBind来解决,同时还能实现很多级的展开。可能一开始很不容易理解,而且有些时候我们只需要两层结构。所以就花了点时间写了一个demo,以一个简单的方式来实现两层结构的TreeRecyclerView,不需要去实现一个自定义的recyclerview,也不需要对Adapter的结构有太大的改动。各位将就着看吧,很多地方是可以改进的。
实现思路
有时候我们遇到的json数据结构就是两层的,比如一个A中含有一些属性以及一个B的数组,这样我们在构建实体类的时候也会按照同样的结构来进行,所以我们先创建一个实体类ParentEntity代码如下
public class ParentEntity {
private int id;
private String name;
private List children;
public static class ChildEntity{
private int id;
private String name;
}
}
PS:构造函数省略了。。。 Parent和Child都只拥有id和name,但是其实这是两个不同的实体,因为如果绑定的数据是一个格式的,只是深度不一样的话,那就完全采用另外一种实现方法了,github上太多太多。
实现过程
第一步,adpter
如何实现数据的绑定就不多讲了,demo里面的item添加效果使用了开源项目recyclerview-animators
主要是adapter的实现,首先我们定义一个adapter,实现其所需要的基础方法
package com.jianyuyouhun.treerecycleradapter.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
impo