Je dois supprimer complètement les diviseurs de ExpandableListView. En ce qui concerne les éléments parents, c’est une méthode setDividerHeight où je peux passer une valeur nulle. Mais il n'y a pas de méthode similaire pour l'enfant diviseur. Y a-t-il un moyen de le cacher?
Si vous souhaitez supprimer complètement les séparateurs de ExpandableListView
, setDividerHeight
convient pour les éléments parent et enfant. Le séparateur enfant sera dessiné à la même hauteur que le séparateur normal ou défini par setDividerHeight()
.
Et j'utilise un moyen de contourner l'un pour l'autre pour masquer un élément et afficher l'autre, il suffit de définir le séparateur et les éléments de la même couleur, comme ci-dessous:
ExpandableListView expView = getExpandableListView();
expView.setGroupIndicator(null);
expView.setChildIndicator(null);
expView.setChildDivider(getResources().getDrawable(R.color.greywhite));
expView.setDivider(getResources().getDrawable(R.color.white));
expView.setDividerHeight(2);
setDividerHeight
doit être inférieur à setChildDivider
et setDivider
, sinon la hauteur sera 0.
En attente de plus de réponses ...
masquer le séparateur enfant lui donner une couleur transparente # 00000000
définir transparent dans votre fichier color.xml
<color name="transparent">#00000000</color>
puis définissez le séparateur enfant
listView.setChildDivider(getResources().getDrawable(R.color.transparent))
ou dans le fichier XML de mise en page
<ExpandableListView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:childDivider="#00000000"/>
Vous pouvez utiliser l'attribut
<ExpandableListView
Android:id="@+id/interestlvExp"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
Android:divider="@null">
</ExpandableListView>
Mais cela supprimera également le séparateur de liste de groupe.
Si vous souhaitez supprimer uniquement le séparateur enfant, vous pouvez créer un dessin pouvant être dessiné avec la même couleur que la couleur d'arrière-plan enfant. Puis définissez-le comme séparateur de votre enfant.
ShapeDrawable sd1 = new ShapeDrawable(new RectShape());
sd1.getPaint().setColor(YOUR CHILD ITEM BACKGROUND COLOR);
mExpListView.setChildDivider(sd1);
au lieu d'écrire un code long, utilisez la propriété ExpandableListView
. Cela fonctionnera: -
Android:childDivider="@Android:color/transparent"
Définissez la hauteur de séparation de votre expandableListView sur 0
//setDividerHeight(0)
Et puis ajoutez une vue au bas de votre headerView xml
<View
Android:layout_width="match_parent"
Android:layout_height="1dp"
Android:layout_gravity="bottom"
Android:background="@Android:color/darker_gray"
/>