1) Fondamentalement, vous devez cacher "expand arrow" quand le groupe n'a pas d'enfant. Pour ce faire, définissez la propriété GroupIndicator
sur null.
Ex: getExpandableListView().setGroupIndicator(null);
OU
2) en vérifiant que les enfants comptent vous pouvez définir l'indicateur comme le code ci-dessous,
if (getChildrenCount(groupPosition) == 0) {
indicator.setVisibility(View.INVISIBLE);
} else {
indicator.setVisibility(View.VISIBLE);
indicator.setImageResource(isExpanded ? R.drawable.list_group_expanded : R.drawable.list_group_closed);
}
Pour plus d'informations sur le masquage indicateur groupe , vous pouvez vous référer this link.
OU
3) Créer un fichier group_indicator.xml dans le dossier drawable
<item android:state_empty="true" android:drawable="@android:color/transparent"></item>
<item android:state_expanded="true" android:drawable="@drawable/arrowdown"></item>
<item android:drawable="@drawable/arrowright"></item>
Ensuite, définir de liste extensible comme le code ci-dessous,
<ExpandableListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:groupIndicator="@drawable/group_indicator"
android:layout_weight="1" >
</ExpandableListView>
Espérons que cela Résolvez votre problème.
C'est en effet ce que je cherche. La dernière suggestion ne fonctionnera pas car elle est toujours à l'état vide et c'est une limitation par android (en fait, ils disent que c'est pour des raisons de performance) – Snake
Cependant, dans votre première suggestion, le mettre à null le désactivera pour toute la liste – Snake