Ich möchte alle untergeordneten Elemente erweitern, während die erweiterbare Listenansicht ausgefüllt ist. Derzeit sieht mein Code folgendermaßen aus:
ExpandableListView listView = (ExpandableListView) findViewById(R.id.view);
int count = viewAdapted.getGroupCount();
for (int position = 1; position <= count; position++)
listView.expandGroup(position - 1);
Das ist ziemlich hässlich. Gibt es einen schöneren Weg, dies zu tun?
android
expandablelistview
Drejc
quelle
quelle
Antworten:
Sie können es in getGroupView in Ihrem benutzerdefinierten Adapter erweitern:
@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; }
Glück!
quelle
Wenn Sie diesen Code in Ihren Adapter einfügen, bleibt die Erweiterungsliste geöffnet und die Schließfunktion wird deaktiviert.
ExpandableListView mExpandableListView = (ExpandableListView) parent; mExpandableListView.expandGroup(groupPosition);
Dies mag ein wenig umgangen werden, funktioniert aber so, wie es sein sollte. Es öffnet alle Gruppen (zu Beginn) und kann jederzeit geschlossen werden
for ( int i = 0; i < groupList.getCount(); i++ ) { groupList.expandGroup(i); }
HINWEIS: Fügen Sie diesen Code nach dem Einstellen des Adapters in Ihre erweiterbare Ansicht ein. Andernfalls kann es zu Fehlern kommen. Ich hoffe es hilft.
quelle
Füllen Sie zuerst den Adapter und fügen Sie diesen Code in Ihre oncreate-Methode ein
int count = adapter.getGroupCount(); for ( int i = 0; i < count; i++ ) listView.expandGroup(i);
quelle
Alle Gruppen erweitern
for(int i=0; i < myAdapter.getGroupCount(); i++) myExpandableListView.expandGroup(i);
wenn Sie sie nicht zusammenlegbar machen möchten.
myExpandableListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v,int groupPosition, long id) { return true; } });
quelle
Ich habe die aufgelisteten Antworten ausprobiert, aber festgestellt, dass ich die Methode getGroupCount () verwenden kann, um die Anzahl der Gruppen abzurufen .
Mit dieser Methode kann ich jede Gruppe von mir iterieren und erweitern
ExpandableListView
for (int i = 0; i < myExpandableListView.getExpandableListAdapter().getGroupCount(); i++) { //Expand group myExpandableListView.expandGroup(i); }
quelle