Reputation: 14286
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?
Upvotes: 76
Views: 64720
Reputation: 126563
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);
}
Upvotes: 1
Reputation: 10538
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.
Upvotes: 39
Reputation: 339
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;
}
});
Upvotes: 7
Reputation: 190
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);
Upvotes: 8
Reputation: 4530
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!
Upvotes: 79