ExpandableListView 是可展开列表控件,可能很多人都没用过,一般来说使用的频率不是很多,不过看下手机QQ中的好友分组列表,是它是它就是它……不过使用到了还是需要注意一些重要方法,在此做个记录。
1、跟普通的ListView使用也差不多,都需要绑定一个适配器,不过这里需要的不是BaseAdapter而是BaseExpandableListAdapter,适配器里面的该怎么重写就怎么重写
2、因为这个列表是分组的,所有需要2个容器对象,一个用来装分类数据,一个用来装所有类的数据,比如:
/**
* 好友分组数据
*/
private List<Group> mGroupList = new ArrayList<Group>();
/**
* 好友数据
*/
private List<List<Friends>> mStarsList = new ArrayList<List<Friends>>();
3、展开某一组,可以通过指定组别位置展开,比如:
for (int i = 0; i < mGroupList.size(); i++) {
mStarLv.expandGroup(i);
}
4、屏蔽某一组的展开\收缩功能,这里可以通过屏蔽某一组的点击事件,比如:
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
// 屏蔽守护组的点击事件
if (mGroupList != null && groupPosition < mGroupList.size()) {
FavStarInfo starinfo = mGroupList.get(groupPosition);
if (starinfo.getTypeName().equals(getString(R.string.tab_guard))) {
return true;
}
}
return false;
}
5、根据展开\搜索,显示不同的文案,比如:展开\收起
@Override
public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (isExpanded){
// 显示收起
} else {
// 显示展开
}
}