Aller au contenu

ExpandableListView sans enfant


vince123

Recommended Posts

Bonjour à tous,

j'utilise un ExpandableListView qui a 5 parents, je veux qu'un seul des parents (et toujours le même) aie un enfant !

chaque parent contient une flèche et un titre !

Lorsque je clique sur le parent (qui a l'enfant) la flèche pivote de 90° et l'enfant s'affiche (jusqu'ici aucun problème ;) )

Mais lorsque je clique sur les autres parents (qui n'ont pas d'enfant) ma flèche pivote quand même :/

Que faire pour m'en sortir sachant que j'ai les conditions suivantes .. :|

Pour mes flèches qui sont personnalisées je fais ça :

dans mon .xml de l'activity :

               android:layout_width="fill_parent" 
              android:layout_height="wrap_content"
              android:layout_below="@+id/relative"
              android:drawSelectorOnTop="false"
              android:groupIndicator="@drawable/expander_group"/>

dans drawable => j'ai mon expander_group.xml où je déclare mes 2 flèches :

       android:state_expanded="true"
       android:drawable="@drawable/expander_ic_maximized" />
       android:drawable="@drawable/expander_ic_minimized" />

Lien vers le commentaire
Partager sur d’autres sites

setOnGroupExpandListener

collapseGroup

:P

à mon avis, le Listener est appelé avant que la flèche ait pivoté

oui tu as certainement raison

merci, je testes cela lundi :P

edit :

A quel moment, je lui dis que je veux que tel et tel groupe (parent) n'ai pas d'enfant :

       getExpandableListView().setOnGroupClickListener(new OnGroupClickListener() 
         {

           public boolean onGroupClick(ExpandableListView parent, View v,int groupPosition, long id) 
           {
               getExpandableListView().collapseGroup(groupPosition);
               return false;
             }
     });

Modifié par vince123
Lien vers le commentaire
Partager sur d’autres sites

  • 3 weeks later...

oui tu as certainement raison

merci, je testes cela lundi :P

edit :

A quel moment, je lui dis que je veux que tel et tel groupe (parent) n'ai pas d'enfant :

       getExpandableListView().setOnGroupClickListener(new OnGroupClickListener() 
         {

           public boolean onGroupClick(ExpandableListView parent, View v,int groupPosition, long id) 
           {
               getExpandableListView().collapseGroup(groupPosition);
               return false;
             }
     });

un petit up sur cette question

je ne vois pas où intervenir dans le code pour supprimer cette flêche, ici le code traite du clic pas de la constuction de la liste

as-tu résolu ton problème ?

Modifié par superseed77
Lien vers le commentaire
Partager sur d’autres sites

setGroupIndicator(Drawable groupIndicator)
setGroupIndicator(Drawable groupIndicator)

c'est pour supprimer la fleche sur l'ensemble de la liste ? n'est-ce pas

pour un groupe vide j'imagine qu'il faut étendre ou modifier l'adapter :

SimpleExpandableListAdapter BaseExpandableListAdapter

et de faire quelque chose dans getGroupView

du genre if(getChildrenCount(groupPosition)==0)

mais comment ?

:mad:

ViewGroup

Lien vers le commentaire
Partager sur d’autres sites

j'ai créé un expander_group.xml

<?xml version="1.0" encoding="utf-8"?>

android:state_expanded="true"

android:state_empty="false"

android:drawable="@drawable/arrow_li_parent_open" />

android:state_expanded="false"

android:drawable="@drawable/arrow_li_parent_close" />

android:state_expanded="false"

android:state_empty="true"

android:drawable="@drawable/empty"/>

android:state_expanded="true"

android:state_empty="true"

android:drawable="@drawable/empty"/>

et chargé ça dans mon ExpandableListActivity

Drawable icon = this.getResources().getDrawable(R.drawable.expander_group);

getExpandableListView().setGroupIndicator(icon);

j'ai bien mes icones mais

l'icone ne disparait que quend je clique sur le groupe vide

Allez les françophones de l'aide !

Lien vers le commentaire
Partager sur d’autres sites

oui problème résolu :

gestion des clicks sur les parents !

1er parent => case 0 => démarrer intent...etc

2ème parent => pas de case 1 => montre les enfants

3eme parent, 4eme ...etc démarrer intent

 getExpandableListView().setOnGroupClickListener(new    OnGroupClickListener() 
       {
           public boolean onGroupClick(ExpandableListView parent,View v, final int groupPosition, long id) 
           {
              if(!(groupPosition == 1))
              {
                      switch (groupPosition)
                      {
                      case 0:
                              Intent x
                              break;

                      case 2:
                              Intent xx
                              break;

                      case 3:
                              Intent xxx
                              break;

                      case 4:
                                 Intent xxxx
                             break;   
                      }
                      return true;
              }
              else
              {
                  return false;
              }       
           }
       });

D'ailleurs voici la liste de mes enfants et j'aimerai mettre un string à la place de "go", comment faire ? :/ :

static final String shades[] = {


               "lightgrey"
             ,

             "go"

             ,

               "yellow 1"
             ,

               "indianred 1"
             ,

               "lightgrey",

           };

Modifié par vince123
Lien vers le commentaire
Partager sur d’autres sites

Ben faut le dire alors :p

T'as un example ExpandableListView. Je sèche sur les examples :(.

excuse moi, de n'avoir pu répondre plus tôt ! :| :|

Regarde ici : http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/index.html

Ensuite dans "Lists" et plus particulièrement "4. ListAdapter" et "6. ListAdapter Collapsed"

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...