树形ListView

本文介绍了如何在Android中实现树形ListView,包括数据的处理、层级展示、展开与收缩功能。通过反射和注解将数据转化为Node对象,然后通过核心类TreeHelper和TreeListViewAdapter实现树形结构。此外,文章还提供了关键代码片段和类结构说明。
摘要由CSDN通过智能技术生成
第一次接触树形ListView是一年前,当时公司做的项目是一个企业的员工管理软件,在展示员工时用到的,我花了大半天时间,才把树形ListView搞明白,完成任务后就没有然后了(当时主管还对我说要注意代码的积累,可我没在意)。今年五月份来北京找工作,找了两个月才找到工作(对这份工作还不能满意,没办法还得要吃饭),这两个月,浮躁的心也静下来了,做技术的就踏踏实实的把技术搞好,再去想其他的。废话不多说了说下这个树形ListView吧,做了些封装,只要明白原理,用的时候只需根据自己的需求修改些地方就可以了。
我封装的这个树形ListView针对数据是有从属关系的数据。
针对数据,
第一步:将数据通过反射和注解转化为想要的数据
第二步:理清数据关系(简单说,就是找出谁是谁的爹,谁是谁的儿)
第三步:将数据排序(要知道ListView是将数据源里的数据挨个展现出来的,所以顺序很重要)
这是针对数据的操作
怎么将树形层级展示出来呢?通过View 的位置的后移做到的,层级越高,放的距离越远离屏幕左方(一个固定距离*层级数)
如何实现展开和缩放(展开一些子节点就会展示出来,收缩一些数据就会隐藏)
通过两个数据源,一个数据源为显示的数据源,另一个为全部数据源,根据结点状态过滤出显示数据源。
上面这些就是树形ListView的大体思想
首先介绍下代码结构


MainActivity,SimpleTreeAdapter,FileNode只是些使用时的一些类,
Node,TreeHelper,TreeListViewAdapter等这些是我们封装的
首先说下Node,Node的类是我们封装的数据源,我们要将数据转化为Node类
	int id;
	int pid = 0;
	/**
	 *名称
	 */
	String label;
	/**
	 * 层级
	 */
	int level;
	/**
	 * 当前是否展开
	 */
	p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值