2010-07-14 14 views

risposta

44

Se si desidera rimuovere completamente i divisori da ExpandableListView, setDividerHeight è ok per entrambi gli elementi padre e figlio. Il separatore di bambini verrà disegnato utilizzando la stessa altezza del normale divisore o impostato da setDividerHeight().

e sto usando un lavoro in giro per noi di nascondere uno e visualizzare l'altro, è sufficiente impostare il divisore e gli elementi dello stesso colore come qui di seguito:

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 mosto sotto setChildDivider e setDivider, o l'altezza sarà 0.

in attesa di più risposte ...

+0

Salvato un sacco di tempo. – Ganesh

+0

Ovviamente, se la spaziatura per il padding fosse fastidiosa, è possibile impostare DividerHeight su 0 e includere un divisore nella cella utilizzata nell'adattatore personalizzato. Per evitare che l'elemento in fondo abbia un separatore, è sufficiente nascondere il separatore se index == getGroupCount() - 1 && index2 == getChildCount() - 1 – csga5000

24

per nascondere il divisore bambino impostarlo colore a trasparente # 00000000

definire trasparente nel file color.xml

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

e quindi impostare il divisore bambino

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

o nel file di layout xml

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

L'impostazione del divisore su un colore trasparente non lo rimuove. – Sulby

+7

in alternativa puoi usare 'android: childDivider =" @ android: color/transparent "' – cassioso

+0

Questo funziona solo se lo sfondo dietro l'elenco è dello stesso colore degli elementi della lista. Se si dispone di un colore di lavaggio per lo sfondo e bianco per gli elementi questo non funzionerà. –

0

impostare l'altezza del vostro divisorio espandibileListView to 0

//setDividerHeight(0) 

E poi aggiunge una visualizzazione in basso nella vostra headerView xml

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

Se si desidera rimuovere solo divisore bambino, è possibile creare un disegnabile con stesso colore del colore di sfondo del bambino. Quindi impostalo come separatore figlio.

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

0

È possibile utilizzare l'attributo

<ExpandableListView 
    android:id="@+id/interestlvExp" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:divider="@null"> 
</ExpandableListView> 

Ma questo verrà rimosso lista del gruppo divisore pure.

Problemi correlati