2016-05-23 10 views
3

Ich habe eine benutzerdefinierte 3-stufig erweiterbare Listenansicht. Fertig mit 2 Adaptern, die BaseExpandableListAdapter erweitert: ParentAdapter und ChildAdapter.Android ExpandableListView, wie erweiterter/reduzierter Status gespeichert wird?

Inside getChildView von ParentAdapter Ich beschwöre nur ChildAdapter.

Aber wenn ich die 3. Ebene erweitern und es aus der Sicht scrollen, stellt es sich wieder in den zusammengefalteten Zustand zurück.

Wie kann ich das beheben?

Ich denke, ich muss expanded/collapsed Zustand für meine getGroupView in ChildAdapter speichern, aber ich weiß nicht, wie Sie dies richtig implementieren.

Oder sollte ich den Status für getChildView in ParentAdapter speichern?

Antwort

0

Ok, es sieht so aus, ich habe es geschafft.

Zuerst hinzufügen, fügen Sie zusätzlichen Parameter isExpanded in Ihrem Artikel.

In ParentAdapter innen getChildView hinzufügen Zustand:

//expand child if was previously expanded 
    if (item.isExpanded) 
    { 
    expandableListView.expandGroup(childPosition); 
    } 

In ChildAdapter innerhalb getChildView hinzufügen:

if (item.isExpanded) 
    { 
    expandableListView.expandGroup(groupPosition); 
    notifyDataSetChanged(); 
    } else { 
    expandableListView.collapseGroup(groupPosition); 
    notifyDataSetChanged(); 
    } 

Das spart eine erweiterte/Zustand Ihrer Produkte zusammengebrochen und sie richtig ändern.

Zumindest löste diese Implementierung mein Problem, obwohl eine bessere Lösung existieren könnte.

Verwandte Themen