2011-06-01 10 views
11

Quiero cambiar el color del divisor de niño de ExpandableListView escribiendo:Cómo cambiar el color del divisor de elementos secundarios de ExpanableListView mediante el archivo xml de diseño?

android:childDivider="@drawable/yellow" 

en el archivo de diseño. Sin embargo, cuando colapsé el artículo, encontré que el fondo del ExpandableListView se volvió amarillo (@drawable/yellow), pero solo quiero cambiar el color del divisor de elementos secundarios. ¿Quién puede decirme por qué? Para mi sorpresa, si lo cambio por código java como

expandableListView.setChildDivider(this.getResources().getDrawable(R.drawable.yellow)); 

funciona normalmente. Es muy raro, ¿quién puede decirme el motivo?

<!-- if I set childDivider in Layout xml, it can't work normally. 
    However, if set childDivider in java code, it work normally --> 

<ExpandableListView android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 
    android:dividerHeight="2dp" 
    android:divider="@drawable/yellow" 
    android:childDivider="@drawable/yellow" 
    /> 
+0

Una captura de pantalla de lo que ve ayudaría mucho. – inazaruk

Respuesta

23

crear un estirable con pequeña altura y la pusieron a childDivider propiedad

"child_separator.xml":

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="@color/child_separator_color"/> 
    <size android:height="1dp"/> 
</shape> 

ampliable vista de lista:

android:childDivider="@drawable/child_separator" 
+1

No funciona para mí. ¿Alguna idea? –

1

sólo tiene que quitar android:divider="@drawable/yellow" de su diseño. Esto debería resolver su problema si lo entendí correctamente.

Esto es lo que quiero decir:

enter image description here

+0

¡Gracias! sin embargo, tal vez me malinterpretes. Quiero decir que si escribo "android: childDivider =" @ drawable/yellow ", el fondo de ExpandListView se volverá amarillo (en tu imagen sigue siendo negra como de costumbre). – Dalen

+0

Acabo de utilizar tu código e intenté adivinar qué estaba mal. Agregue una captura de pantalla de lo que ve a la pregunta. – inazaruk

+0

No tengo suficiente reposición para publicar la imagen ..... – Dalen

2

Basta con establecer divisor de niño como el color de su elección.

<ExpandableListView 
     android:id="@+id/list_shopping" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:childDivider="@color/LightGrey" 
     android:dividerHeight="1dp" /> 
Cuestiones relacionadas