定义flag记录列表状态
- int expandFlag = -1;//控制列表的展开
重写onGroupClick方法
- ExpandableListView listView = getExpandableListView();
- listView.setOnGroupClickListener(new OnGroupClickListener() {
- @Override
- public boolean onGroupClick(ExpandableListView listView, View v,
- int groupPosition, long id) {
- if (expandFlag == -1) {
- //展开被选的group
- listView.expandGroup(groupPosition);
- //设置被选中的group置于顶端
- listView.setSelectedGroup(groupPosition);
- expandFlag = groupPosition;
- } else if (expandFlag == groupPosition) {
- listView.collapseGroup(expandFlag);
- expandFlag = -1;
- } else {
- listView.collapseGroup(expandFlag);
- //展开被选的group
- listView.expandGroup(groupPosition);
- //设置被选中的group置于顶端
- listView.setSelectedGroup(groupPosition);
- expandFlag = groupPosition;
- }
- return true;
- }
- });