Est-il possible d'élargir un seul enfant d'une ExpandableListView
à la fois, ainsi ouvrir un deuxième enfant fermerait l'enfant précédemment ouvert?
Je ne suis au courant d'aucune méthode automatique pour cela, mais vous pouvez implémenter ExpandableListView.OnGroupClickListener
, dans lequel vous exécutez collapseGroup()
pour tous les groupes de la liste, à l'exception de celui sur lequel vous avez cliqué. Cela fera ce que vous voulez.
Juste pour confirmer la réponse de Bos dans le code:
expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
int previousGroup = -1;
@Override
public void onGroupExpand(int groupPosition) {
if(groupPosition != previousGroup)
expandableList.collapseGroup(previousGroup);
previousGroup = groupPosition;
}
});
Aussi, vous pouvez simplement utiliser le withOnlyOneExpandedItem()
qui se trouve dans FastAdapter
qui est dans FastAdapter External Library by mikepenz
Par exemple, je l'utilise dans mon tiroir
drawer.getAdapter().withOnlyOneExpandedItem(true);