Expand all children in expandable list view
I would like to expand all children while the expandable list view is populated. Currently my code looks like this:
ExpandableListView listView = (ExpandableListView) findViewById(R.id.view);
int count = viewAdapted.getGroupCount();
for (int position = 1; position <= count; position++)
listView.expandGroup(position - 1);
which is pretty ugly. Is there a nicer way to do this?
You can expand it in getGroupView in your custom adapter:
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
View v = super.getGroupView(groupPosition, isExpanded, convertView, parent);
ExpandableListView mExpandableListView = (ExpandableListView) parent;
mExpandableListView.expandGroup(groupPosition);
return v;
}
Gluck!
putting this code on your adapter will make the expandlist to stay open, and disables its closing function.
ExpandableListView mExpandableListView = (ExpandableListView) parent;
mExpandableListView.expandGroup(groupPosition);
this may be a little work around but works how it should be. It opens all group ( at start ) and can be close any time
for ( int i = 0; i < groupList.getCount(); i++ ) {
groupList.expandGroup(i);
}
NOTE : put this code after setting adapter on your expandable view, or else it may cause error. Hope it helps.
first fill the adapter than put this code in your oncreate method
int count = adapter.getGroupCount();
for ( int i = 0; i < count; i++ )
listView.expandGroup(i);
Expanding all groups
for(int i=0; i < myAdapter.getGroupCount(); i++)
myExpandableListView.expandGroup(i);
if you wish to make them unCollapseable.
myExpandableListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,int groupPosition, long id) {
return true;
}
});
I have tried the responses listed but i found that i can use the getGroupCount() method to get the number of groups.
Using this method i can iterate and expand every group of my ExpandableListView
for (int i = 0; i < myExpandableListView.getExpandableListAdapter().getGroupCount(); i++) {
//Expand group
myExpandableListView.expandGroup(i);
}