2010-07-14 3 views

Répondre

44

Si vous souhaitez supprimer complètement les séparateurs de ExpandableListView, setDividerHeight convient aux articles parents et enfants. Le diviseur enfant utilisera la même hauteur que le séparateur normal ou sera défini par setDividerHeight().

Et je me sers d'un travail autour pour nous de cacher et réafficher l'autre, juste régler le diviseur 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 en dessous setChildDivider et setDivider, ou la hauteur sera 0.

en attendant plus de réponses ...

+0

Économisé beaucoup de temps. – Ganesh

+0

Bien sûr, si l'espacement du padding était gênant, vous pouvez simplement régler DividerHeight sur 0 et inclure un diviseur dans la cellule utilisée dans votre adaptateur personnalisé. Pour éviter que l'élément inférieur ne comporte un séparateur, vous pouvez simplement masquer le séparateur si index == getGroupCount() - 1 && index2 == getChildCount() - 1 – csga5000

24

pour cacher le diviseur de l'enfant réglez la couleur à transparent # 00000000

définissent transparente dans votre fichier color.xml

<color name="transparent">#00000000</color> 

puis régler le diviseur de l'enfant

listView.setChildDivider(getResources().getDrawable(R.color.transparent)) 

ou dans la mise en page fichier xml

<ExpandableListView 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:childDivider="#00000000"/> 
+7

La définition d'une couleur transparente n'est pas vraiment supprimée. – Sulby

+7

alternativement vous pouvez utiliser 'android: childDivider =" @ android: couleur/transparent "' – cassioso

+0

Cela fonctionne seulement si l'arrière-plan derrière votre liste est la même couleur que vos éléments de liste. Si vous avez une couleur de fond pour le fond et blanche pour les éléments, cela ne fonctionnera pas. –

0

Régler la hauteur de diviseur de votre expandableListView to 0

//setDividerHeight(0) 

Et puis ajoutez une vue en bas dans votre headerView xml

<View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:layout_gravity="bottom" 
     android:background="@android:color/darker_gray" 
     /> 
1

Si vous voulez supprimer uniquement diviseur enfant, vous pouvez créer un drawable avec la même couleur que la couleur de fond de l'enfant. Ensuite, définissez-le comme votre diviseur enfant.

ShapeDrawable sd1 = new ShapeDrawable(new RectShape()); sd1.getPaint().setColor(YOUR CHILD ITEM BACKGROUND COLOR); mExpListView.setChildDivider(sd1);

0

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 ainsi diviseur de la liste des groupes.

Questions connexes