Jump to content

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" />

Link to comment
Share on other 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;
             }
     });

Edited by vince123
Link to comment
Share on other 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 ?

Edited by superseed77
Link to comment
Share on other 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

Link to comment
Share on other 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 !

Link to comment
Share on other 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",

           };

Edited by vince123
Link to comment
Share on other 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"

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...