web-dev-qa-db-fra.com

Comment masquer complètement le groupIndicator d'un ExpandableListView?

Je veux cacher complètement le groupIndicator dans un ExpandableListView personnalisé.

L'exemple fourni ici n'a pas semblé fonctionner.

Il suggère de faire un sélecteur et d'utiliser expList.setGroupIndicator (sélecteur), que j'ai répliqué:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:id="@+id/empty_icon">
    <item Android:state_empty="true" Android:drawable="@Android:color/transparent"/>
    <item Android:state_expanded="true" Android:drawable="@Android:color/transparent" />
    <item Android:drawable="@Android:color/transparent" />
</selector>

Cela donne l'erreur suivante
ERROR/AndroidRuntime(10675): Caused by: Android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b0013}

La même chose est donnée par la suggestion similaire d'utiliser Android: id/empty à la place de color/transparent.

Comment puis-je cacher complètement l'indicateur de groupe?

Edit: Il se trouve que ce code fonctionne ... si vous le mettez dans le dossier des ressources pouvant être dessiné au lieu de la mise en page.

66

Avez-vous essayé de modifier l'attribut ExpandableListView de Android:groupIndicator="@null"?

242
Michael

Vous pouvez essayer ce code 

listView = (ExpandableListView) view.findViewById (R.id.listView);

listView.setGroupIndicator(null);


listView.setChildIndicator(null);
0
Chandrika Ajmera

J'ai eu le même problème et cela a résolu mon problème… .. Dans l'adaptateur de votre Listview, ajoutez ce qui suit à getGroupView.

if (groupPosition == 0) {
     convertView = layoutInflater.inflate(R.layout.blank_layout, null);

} else {
    convertView = layoutInflater.inflate(R.layout.group_indicator_cell,null);
}

Ceci effacera le 0ème groupe de la liste.

Où layout vierge est une mise en page avec une vue à l'intérieur ayant layout_height = 0dp . Cela fonctionne! 

0
Ajith Memana