如果在此之前没接触过listview多条目布局的,可以建议先看下我之前写的博文:
好了,言归正传,对于可折叠的listview,很多小伙伴们用的都是网上的开源控件expandablelistview,但是还是那句话第三方控件适合外包快速开发,有些自己项目是自己公司的,然后领导要求尽量不使用第三方控件。所以写这个代码仅供大家借鉴参考。
先附上效果图:
概述:要想实现expandablelistview效果,其实也就是自定义adapter,逻辑基本都在adapter里。准备工作1:首先要想实现这种效果就必须用到adapter的多条目(不会的话学会多条目再看本文章)。2:然后每一个item下面的listview是自定义的(listview嵌套listview,不用多说了吧)。
如图1所示,每一个item都是一个listview,然后自己
如图2所示,每一个子item都是一个listview,然后这是子listview的item;
标题1 和下面的name0,name1都是item,这就是adapter多条目布局;
好了重新捋一下思路:最外层是一个listview,然后里面每个item也是一个listview(自定义listview,涉及嵌套问题)。然后在子Item的adapter里根据Bean的flug判断是否是展开还是闭合。最后应该监听一下子listview的第0个Item(标题0,标题1,标题2…),维护flug字段。
上代码
class ATest{
private String name;//标题名字
private String flug;//判断该item是否展开
public String getFlug() {
return flug;
}
public void setFlug(String flug) {
this.flug = flug;
}
private List<BTest> list;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<BTest> getList() {
return list;
}
public void setList(List<BTest> list) {
this.list = list;
}
}
class BTest{
private String name;//子Item的名称(name0,name1.....)
private String age;