77 votes

Développer tous les enfants dans la vue de liste extensible

Je voudrais développer tous les enfants pendant que la vue de liste extensible est remplie. Actuellement, mon code ressemble à ceci :

ExpandableListView listView = (ExpandableListView) findViewById(R.id.view);
int count = viewAdapted.getGroupCount();
for (int position = 1; position <= count; position++)
    listView.expandGroup(position - 1);

ce qui est assez moche. Existe-t-il un moyen plus agréable de faire cela ?

0 votes

Vous pouvez peut-être regarder ça : stackoverflow.com/questions/6849013/expandable-listview

0 votes

Apparemment, c'est la seule solution pour le moment. J'espère qu'il y a un attribut ou quelque chose de similaire.

0 votes

Bien sûr (position <= count) ... copier coller la faute de frappe

2voto

Avinash Points 1

J'utilise un listview extensible dans un viewpager. Pour une page, il n'y aura qu'un seul groupe. En cliquant dessus, la vue enfant s'affiche. En faisant glisser la page, les valeurs seront modifiées. Le problème que je rencontre maintenant est que j'essaie de faire en sorte que le groupe soit étendu par défaut. J'ai essayé le code ci-dessous, mais après cela, getChildView() n'appelle pas et ne développe pas non plus mon groupe. Aidez-moi s'il vous plaît.

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;
}

J'ai un groupe et sa position est 0. J'ai donc fait comme ceci

mExpandableListView.expandGroup(0);

et j'ai aussi essayé comme ceci

list.setAdapter(new ProductExpandableAdapter(activity, subMenuList,position));
list.expandGroup(0);

Mais rien ne fonctionne... :(

1voto

Elenasys Points 23268

J'ai essayé les réponses listées mais j'ai trouvé que je pouvais utiliser la fonction [getGroupCount()](https://developer.android.com/reference/android/widget/ExpandableListAdapter.html#getGroupCount()) pour obtenir le nombre de groupes.

En utilisant cette méthode, je peux itérer et développer chaque groupe de mes ExpandableListView

for (int i = 0; i < myExpandableListView.getExpandableListAdapter().getGroupCount(); i++) {
      //Expand group
      myExpandableListView.expandGroup(i);
 }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X