Cuillère Posté(e) 23 décembre 2010 Share Posté(e) 23 décembre 2010 Bonjour, j'utilise ce code : public class MyExpandableListAdapter extends BaseExpandableListAdapter { private String[] groups ; private String[][] children; public MyExpandableListAdapter(String[] groups,String[][] children){ this.groups = groups; this.children = children; } public Object getChild(int groupPosition, int childPosition) { return children[groupPosition][childPosition]; } public long getChildId(int groupPosition, int childPosition) { return childPosition; } public int getChildrenCount(int groupPosition) { return children[groupPosition].length; } public TextView getGenericView(int gravity) { // Layout parameters for the ExpandableListView AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, 32); TextView textView = new TextView(FiltersAffiner.this); textView.setLayoutParams(lp); // Center the text vertically textView.setGravity(gravity); // Set the text starting position textView.setPadding(36, 0, 0, 0); return textView; } public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(FiltersAffiner.this); convertView = inflater.inflate(R.layout.element_expandable_affiner, null); } TextView txtView = (TextView)convertView.findViewById(R.id.txtValue); txtView.setText(getChild(groupPosition, childPosition).toString()); TextView txtViewNb = (TextView)convertView.findViewById(R.id.txtNb); txtViewNb.setText(""+expAlstFilterCell.get(parent).get(childPosition).number); convertView.setFocusableInTouchMode(true); return convertView; } public Object getGroup(int groupPosition) { return groups[groupPosition]; } public int getGroupCount() { return groups.length; } public long getGroupId(int groupPosition) { return groupPosition; } public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(FiltersAffiner.this); convertView = inflater.inflate(R.layout.element_expandable_affiner, null); } TextView txtView = (TextView)convertView.findViewById(R.id.txtValue); txtView.setText(getGroup(groupPosition).toString()); convertView.setFocusableInTouchMode(true); return convertView; } public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } public boolean hasStableIds() { return true; } } Mais les children et les parents de ma liste ne sont plus clickables. Si quelqu'un sait comment résoudre ce problème, merci ! :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 23 décembre 2010 Share Posté(e) 23 décembre 2010 Arf, l'expandableListView, j'en ai fait des cauchemars, je fouille dans mes programmes et je te dis si je trouve quelque chose ;) P.S : Après mes petites fouilles, il faut definir les Listener dans la méthode getGroupView :) Si ca ne suffit pas je continuerai a chercher ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cuillère Posté(e) 23 décembre 2010 Auteur Share Posté(e) 23 décembre 2010 Merci. J'essaye mais je vois pas vraiment comment faire, un petit bout de code pour m'éclairer ? Merci =) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 23 décembre 2010 Share Posté(e) 23 décembre 2010 Par exemple ici : public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(FiltersAffiner.this); convertView = inflater.inflate(R.layout.element_expandable_affiner, null); } TextView txtView = (TextView)convertView.findViewById(R.id.txtValue); txtView.setText(getChild(groupPosition, childPosition).toString()); TextView txtViewNb = (TextView)convertView.findViewById(R.id.txtNb); txtViewNb.setText(""+expAlstFilterCell.get(parent).get(childPosition).number); txtViewNb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Ici ce que tu veux que ca fasse } convertView.setFocusableInTouchMode(true); return convertView; } A moins que je n'ai mal compris ta demande et que tu que le depliement ne marche plus Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cuillère Posté(e) 23 décembre 2010 Auteur Share Posté(e) 23 décembre 2010 Yep c'est ça, merci beaucoup, je testerai pendant l'après midi. Et j'ai aussi un problème avec le depliement lorsque j'inflate une view dans le GetGroupView de l'adapter. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cuillère Posté(e) 23 décembre 2010 Auteur Share Posté(e) 23 décembre 2010 J'ai testé, ça marche, merci ! Juste encore un problème. J'ai 2 textview dans mon layout customisé, mais pas moyen de les placer correctement. J'ai ceci dans le XML : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txtValue" android:layout_alignParentLeft="true" android:textSize="16dip" android:layout_marginRight="10dip"></TextView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txtNb" android:layout_alignParentRight="true" android:textSize="16dip" android:layout_marginRight="10dip"></TextView> </RelativeLayout> Mais les 2 sont collées à gauche du layout. EDIT : un reboot d'Eclipse et ça remarche. Mais toujours un autre problème. Voici le layout qui contient 3 ExpandableListViews ajoutées par code : <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/RelativeLayoutAffiner"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/relAffiner"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/tableLayoutAffiner"> </TableLayout> </RelativeLayout> </RelativeLayout> Je n'arrive pas à les afficher correctement, lorsque les 3 sont ouvertes, pas de place pour tout afficher sur l'écran, et ça fait un truc assez horrible. Si tu as une solution pour ça, merci ! :) Les listes sont dans des TableRow du tableLayout Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 23 décembre 2010 Share Posté(e) 23 décembre 2010 3 expandablelistview ?! C'est 3 elements dans la listview ? Aurais tu un screen de ce que tu as ? et une petite touche de pain pour me montrer ce que tu veux ? J'esseirai de t'aider si j'y arrive ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cuillère Posté(e) 23 décembre 2010 Auteur Share Posté(e) 23 décembre 2010 J'ai joins les deux screens. Le premier lorsque ça ne dépasse pas, et le 2nd lorsque les 3 sont ouvertes. En rajoutant une scrollview, ça ne marche pas. Une idée ? Merci pour ton aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 23 décembre 2010 Share Posté(e) 23 décembre 2010 En fait j'ai l'impression que tu n'utilises pas l'expandablelistview comme il le faut ^^ Ces 3 menus sont toujours fixe ? Une expandablelistview est comme une listeview, il faut la lier a un adapter qui s'occupera des views. Je pense que tu as fait 3 expandablelistview, ce qui explique que tu ne puisses scroller. Normalement tu devrais avoir : ExpandableListView --> Child 1 --> Child 2 --> Child 3 Et là il pourra scroll entre les child Hors tu as ( je présume ) : ExpandableListView1 ExpandableListView2 ExpandableListView3 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cuillère Posté(e) 23 décembre 2010 Auteur Share Posté(e) 23 décembre 2010 Oui je suis au courant, j'ai 3 ExpandableListViews, c'est ce que je veux. Mais je n'arrive pas à les agencer comme je veux. Les children de chaque liste se scroll comme il faut, c'est juste les ExpandableListView qui ne sont pas fixes lorsqu'elles sont déroulées. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 23 décembre 2010 Share Posté(e) 23 décembre 2010 Normal, chacune prend la place qu'elle a besoin, essai de les mettre chacune dans une scroll view bien que je doute que ca fonctionne Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cuillère Posté(e) 23 décembre 2010 Auteur Share Posté(e) 23 décembre 2010 Je voudrais en fait qu'elles n'aient plus un scroll chacune et avoir un scroll qui les englobe toutes. C'est faisable ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 23 décembre 2010 Share Posté(e) 23 décembre 2010 D'instinct je dis non. Je vais essayer de m'expliquer ^^ Le scroll observe les gestes de glissement verticaux, de même que les expendablelistview qui seraient dedans. De fait comment le système saurait si le mouvement est destiné aux expendable ou au scroll. Je ne suis pas un monstre en théorie ( ni même en pratique remarque ), mais il me semble que c'est la bonne explication ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cuillère Posté(e) 24 décembre 2010 Auteur Share Posté(e) 24 décembre 2010 Ok, merci, je vais partir sur autre chose de plus simple pour l'affichage alors, merci pour ton aide ! ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 24 décembre 2010 Share Posté(e) 24 décembre 2010 Pas de problème, si tu rencontres encore des problèmes, MP moi, je ne passe pas souvent dans ces sections ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.