2009-12-09 16 views
33

Si tengo un ListView con dos tipos diferentes de elementos, habilitados y deshabilitados (es decir, seleccionable y no seleccionable), Android dibuja un pequeño divisor correctamente entre los elementos habilitados, pero no entre elementos deshabilitados. En cambio, dibuja un divisor transparente, que causa problemas de diseño realmente malos. Esto ya se ha discutido here (Grupos de Google), pero sin ninguna solución.Android: elementos ListView no habilitados dibujar divisor invisible

Lo que estoy buscando es una forma de forzar a Android a dibujar el mismo divisor que se usa entre enabled elementos para usar también entre disabled elementos en lugar de simplemente dejar un espacio transparente.

+0

Me he encontrado con este problema también y me entristece que se suponga que es el comportamiento esperado. La única solución en la que puedo pensar es dibujar los separadores tú mismo creando tu propio adaptador que los agrega automáticamente donde sea apropiado. –

+0

He estado buscando por un tiempo y no he encontrado una solución adecuada también. Actualizaré esta publicación tan pronto como encuentre una. Por ahora, también uso el adaptador personalizado como solución alternativa. – znq

+0

Acabo de encontrar el mismo problema en mi aplicación. Un encabezado no seleccionable no muestra el divisor (encabezado agregado con este método! AddHeaderView (Ver v, Datos de objeto, booleano isSelectable). Lo pondré directamente en mi encabezado ... –

Respuesta

0

sí, no es para nada genial! Me encontré con el mismo problema. La forma de arreglarlo es agregar una línea de tipo Ver en su archivo xml y establecer su divisor a 0 de esta manera: android: dividerHeight = "0dp" Nota: esto está en la vista de lista.

1

si tiene encabezados y/o pies de página esto: http://java.dzone.com/articles/android-listview-%E2%80%93-fixing es la respuesta correcta. Muy bien explicado.

+0

Su enfoque funciona, pero es un poco problemático. Si 'areAllItemsEnabled()' devuelve verdadero, puede poner cualquier elemento en foco y hacer clic en él, incluidos los elementos para los cuales 'isEnabled' devolvería false. Intente usar las teclas de flecha + ingrese en un emulador. –

+0

si desactiva/hace clic en falso el contenido en sí mismo no debería hacer clic en la lista. La función isEnabled de listview no se puede usar de manera apropiada, ya que hay muchos errores/incompatibilidades como esta. – Denny1989

Cuestiones relacionadas