2012-08-27 22 views
5

estoy teniendo la siguiente ExpandableListView:Android ExpandableListView divisor es invisible

<ExpandableListView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@+id/listView" 
      android:groupIndicator="@android:color/transparent" 
      android:background="@color/app_background" 
      android:scrollingCache="false" 
      android:choiceMode="none" 
      android:divider="@color/gray_dark" 
      android:dividerHeight="2dp" 
      android:childDivider="@color/gray_dark" 
      android:cacheColorHint="@color/app_background"/> 

El problema que tengo es que la vista de lista expandible no está dibujando los divisores o al menos no son visibles .. Estoy añadiendo una vista personalizada como vista de grupo y también elementos de lista personalizados en mi adaptador expandible. ¿Podría esto ser un problema?

¿Alguien sabe qué puedo hacer para habilitar los divisores para la lista secundaria?

Gracias de antemano.

+0

¿Es usted "y agregó que" a medida 'View's a la lista a través de un' Adapter' oa través de algo como '((ViewGroup) findViewById (R.id.listView)). AddView (child) '? Si esto último, no funcionará como esperabas. – user113215

+0

Estoy agregando vistas personalizadas a través de un adaptador – Cata

Respuesta

13

Parece que tuve un problema en mi adaptador ampliable .. Me fue anulada el siguiente método:

@Override 
public boolean areAllItemsEnabled() { 
    return true; 
} 

En lugar de devolver cierto Salí del método para devolver falsa y ese era el problema ... Entonces, si alguien tiene este problema, verifique ese método y asegúrese de que devuelva verdadero y no falso.

Tenga en cuenta que no es necesario para anular dicho método, si se amplía BaseExpandableListAdapter

+13

Genial, esto me ha estado molestando durante una buena hora más o menos :) Para referencia futura, también encontré que necesitaba devolver verdadero para 'isChildSelectable() ' – sleeke

+1

Estoy de acuerdo con @sleeke, tuve que tanto' areAllItemsEnabled() 'y' isChildSelectable() 'para que dejara de ser invisible. –

0

Nunca he tratado de meterme con los divisores en el xml, siempre lo he hecho a través del código. A continuación se muestra un fragmento que establece el divisor en rojo y se desvanece a medida que se mueve desde el centro hacia los bordes. Solo hay una llamada de altura de divisor ya que esa parte afecta tanto al grupo como al niño.

import android.graphics.drawable.GradientDrawable; 
import android.graphics.drawable.GradientDrawable.Orientation; 

// code to set up expandablelistview 

int[] colors = {0, 0xFFFF0000, 0}; // red for the example 
getListView().setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
getListView().setChildDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
getListView().setDividerHeight(4); 
+0

Hmm, vale, intentaré hacerlo en código, aunque hubiera sido mejor si hubiera una manera de hacerlo en xml ... Lo intentaré mañana y ver – Cata

+0

parece que no funciona para mí ... gracias aunque – Cata

Cuestiones relacionadas