android+recyclerview实现树形结构,GitHub - jianyuyouhun/TreeRecyclerAdapter: android 中使用recyclerview完成树形结构的...

本文介绍了如何在Android中使用RecyclerView实现树形结构,特别是两层结构的TreeRecyclerView。通过创建一个通用的Adapter,利用Java运行时类型检查来区分ParentEntity和ChildEntity,并处理点击事件以实现展开和折叠功能。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值