ExpandableListView的简单实现,如下所示:
简单的Person类:
ExpandableListView的简单布局:
每个GroupItem的布局,一个简单的TextView:
每个GroupItem展开后,子Item的布局,一个简单的TextView:
运行出来的结果如下所示,可以实现ExpandableListView简单的功能,背景图片是自定义的:
上面是实现简单的ExpandableListView的示例代码和结果,还可以修改item下的每一个选项的布局和对代码进行性能优化,这里就不做扩展了。ExpandableListView的核心是如何将数据进行适配转移到ExpandableListView中,关键之处是选择合适的数据存储形式和复写适配器中两个getXXXview方法,这里数据存储形式利用HashMap<string ArrayList>最为恰当。显然,将数据源转移到集合中的时候,数据源是一个二维数组。其实这一点很好理解,因为每一个GroupItem展开就是一个数组或集合,每个GroupItem并行起来相当于是一个二维数组。