2012-05-25 17 views
9

Hay muchas formas de estilo de ListViews para darles un aspecto elegante, pero todas implican modificar el adaptador o escribir código adicional.Temas de Android ListView

Con el lanzamiento de Android 4.0, desafortunadamente las cosas tienen que cambiar. Google pulió su tema Holo y le dio un nuevo aspecto. Todos los desarrolladores ahora son alentados a usarlo, para que todas las aplicaciones se vean iguales.

Y aquí está el problema. Google lanzó 4.0, pero todavía hay personas que usan versiones anteriores de Android. No podemos simplemente dejar nuestros temas de aplicaciones personalizadas anteriores y usar Holo, ya que arruinará la experiencia visual para los usuarios con dispositivos más antiguos. Y no podemos obligar a los usuarios de 4.0 a usar Holo, porque seamos honestos, todavía no es perfecto.

El objetivo es utilizar el sistema de temas integrados y preparar algunas alternativas para Holo, que se verá genial en todos los dispositivos. Entonces podemos simplemente cambiar entre Holo y nuestros temas con solo setTheme() y sin problemas adicionales. Desafortunadamente no es tan simple. Estamos limitados a las capacidades del sistema temático existente y algunas cosas son simplemente difíciles de hacer. Y aquí viene mi pregunta.

Tomando todo lo que he mencionado en consideración, ¿cómo podemos controlar el aspecto de ListView? No soy capaz de averiguar, cómo:

  • lista con las esquinas redondeadas crear y asegúrese de que el selector de fondo no arruine la hora de seleccionar primero/último elemento
  • crear esquinas redondeadas no para la lista pero separados por secciones cabeceras, algo así como aquí: enter image description here

La solución debe afectar listviews creados por PreferenceActivity sin ningún tipo de líneas adicionales de código. Todo debe estar contenida en el tema:

<theme name="SampleTheme" parent="android:Theme"> 
    ... 
</theme> 

que amablemente no piden que publicar soluciones que no utilizan estilos & temas. Se pueden encontrar fácilmente en otras preguntas, aquí en Stack Overflow.

Gracias de antemano.

+1

Puede que desee verificar esto: http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index. html –

+0

@JaredRummler Este enlace está roto. – Zety

+0

@WalR I * Pienso * esto es lo mismo: http://romannurik.github.io/AndroidAssetStudio/ –

Respuesta

1

Veo dos maneras de resolver esto.

Una es simplemente usar un tema para su lista de vistas especificando el fondo, que a su vez es un 9 parche con esquinas redondeadas o una forma xml que usted especifique (con esquinas redondeadas también). Esto tendrá el efecto secundario del selector de fila de la vista de lista que aparece 'sobre' el fondo que especificó, por lo tanto, tipo de estropear el efecto. Sin embargo, es bastante sencillo de implementar.

La segunda opción es simplemente agregar siempre encabezados y pies de página a sus vistas de lista, que tienen fondos que son selectores con esquinas redondeadas en la parte superior (e inferior). Puede especificar estilos para estos también si realmente lo desea. Perdón por este último comentario, pero tuve que decirlo. No intente hacer que su aplicación se vea como una aplicación de iPhone :)