Collapse all group except selected group in expandable listview android Collapse all group except selected group in expandable listview android android android

Collapse all group except selected group in expandable listview android


Have the current expanded group position stored in a variable. In onGroupExpanded do the following.

private int lastExpandedPosition = -1;private ExpandableListView lv; //your expandable listview...lv.setOnGroupExpandListener(new OnGroupExpandListener() {    @Override    public void onGroupExpand(int groupPosition) {            if (lastExpandedPosition != -1                    && groupPosition != lastExpandedPosition) {                lv.collapseGroup(lastExpandedPosition);            }            lastExpandedPosition = groupPosition;    }});


Use this code this will work

expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {    int previousItem = -1;    @Override    public void onGroupExpand(int groupPosition) {        if(groupPosition != previousItem )            expandableList.collapseGroup(previousItem );        previousItem = groupPosition;    }});


@Override    public void onGroupExpanded(int groupPosition){        //collapse the old expanded group, if not the same        //as new group to expand        if(groupPosition != lastExpandedGroupPosition){            listView.collapseGroup(lastExpandedGroupPosition);        }        super.onGroupExpanded(groupPosition);                   lastExpandedGroupPosition = groupPosition;    }