He estado buscando crear una vista de lista estilísticamente diferente, como muchas otras personas, y comencé buscando ampliar AbsListView. Según el documento de Android, AbsListView es:¿Es posible extender AbsListView para hacer nuevas implementaciones de ListView?
Clase base que se puede utilizar para implementar listas virtualizadas de elementos. Una lista no tiene una definición espacial aquí. Por ejemplo, subclases de esta clase pueden mostrar el contenido de la lista en una cuadrícula, en un carrusel, como pila, etc.
Después de un poco de esfuerzo y examen de la aplicación ListView, parece que puede que no sea Es posible extender AbsListView como lo hace ListView debido al acoplamiento de las dos clases y la imposibilidad de acceder a ciertos miembros del paquete. Me encontré con este formulario Romain Guy:
AbsListView y AbsSpinner están diseñados para ser extendidos dentro del marco . También podrían extenderse en aplicaciones de terceros pero hicimos sin exponer todos los campos y métodos protegidos necesarios a propósito. Queremos ser muy cuidadosos en la forma en que exponemos dichas API para no obtener cosas para futuras extensiones y cambios internos. Nuestra recomendación actual es que simplemente copie/pegue el código que necesita dentro de su aplicación .
Empecé a intentar hacer esto pero copiar AbsListView se convierte en un agujero de conejo para copiar en un montón de otras cosas y realmente parece una propuesta perdedora. Quería ver si alguien ha tenido éxito extendiendo AbsListView que podría compartir una metodología.
[1] http://developer.android.com/reference/android/widget/AbsListView.html
[2] https://groups.google.com/forum/?fromgroups#!topic/android-developers/UhbR1tpVvF0
"realmente parece una propuesta perdedora": esa sería mi evaluación de la situación. – CommonsWare
Gracias Mark. Eso me parece el evangelio también. –
tal vez podría ser un poco más específico en cuanto a lo que quiere decir con "vista de lista estilísticamente diferente". ¿Te refieres a algo que no es una lista vertical? o ¿te refieres a algo que es vertical, pero tiene colores personalizados, vistas, encabezados, etc.? – mtmurdock