2016-03-25 9 views
0

Ich arbeite mit und ExpandableListView, die ziemlich lang ist, so dass ich eine AutoCompleteTextView hinzugefügt, damit der Benutzer sich in dem Element (Gruppe), die er sucht und mit dieser Gruppe erweitert suchen und positionieren (als ob der Benutzer auf die Gruppe klickt).Positionierung auf einer ExpandableListView

Das Paar von Methoden Ich verwende:

mExpandableListView.setSelectedGroup(groupPosition); 
mExpandableListView.expandGroup(groupPosition); 

Wenn ich diese explicity tun, bevor Benutzer fein meine Suchtaste everythig geht klickt: meine Gruppe erweitert wird und die Listview Position selbst, so dass es sichtbar .

Wenn ich es jedoch durch Suchen und Klicken auf meine Suchschaltfläche (die logische Methode) tue, blende ich die Tastatur aus und meine Gruppe wird erweitert, aber das listView fährt nicht, um es anzuzeigen (wenn das Element nicht sichtbar ist)).

Zusätzlich (Ich speicherte meine letzte Gruppe geöffnete Position). Wenn ich erneut klicke, ohne eine neue Suche einzugeben (die Tastatur wird nicht angezeigt), geht es wieder gut.

denke ich, das Problem von einigen Fokus Sachen kommen kann, aber

mExpandableListView.requestFocus(); 

vor dem Paar genannten Methoden nicht funktionieren tun.

Irgendwelche Ideen dazu?

Danke allen!

Antwort

0

Okey gelöst, ich war nicht klar, über die relativen Positionen von Android halten in seiner Listviews, Code für jeden, der es braucht:

mExpandableListView.setSelectedGroup(groupPosition); 
mExpandableListView.expandGroup(groupPosition); //Expanding the group selected, now the list has 1 more element 
mExpandableListView.smoothScrollToPosition(groupPosition + 1); //Scrolling to the content (the new element showed: the child of the group selected)