Podría explicar el método getView()
de ArrayAdapter
.Explicación del método getView() de un ArrayAdapter
que lea la documentación y tiene tres parámetros:
position
: La posición del elemento dentro de los datos del sistema de adaptador de el elemento cuya visión que queremos.convertView
: la antigua vista para reutilizar, si es posible. Nota: debe verificar que esta vista no sea nula y de un tipo apropiado antes de usarla. Si no es posible convertir esta vista para mostrar los datos correctos, este método puede crear una nueva vista.
Las listas heterogéneas pueden especificar su número de tipos de vista, de modo que esta vista sea siempre del tipo correcto (vea getViewTypeCount() y getItemViewType (int)).parent
: El padre que este punto de vista, finalmente, se adjuntará a
I entiende el parámetro position
. Como dijeron, implica la posición del artículo, quién ha sido solicitado.
de dónde viene convertView
. He visto muchos ejemplos donde verifican si convertView
es nulo. Si es nulo, inflan una nueva instancia del diseño de fila, lo rellenan y lo devuelven. Creo que también he entendido eso, pero una cosa todavía me desconcierta. ¿Cuál es el diseño que se pasa a través del parámetro convertView
? ¿Es the resource
parameter that is passed in when initialising the ArrayAdapter
? ¿Es una copia en caché del último diseño devuelto por getView()
?
Y por último. ¿Qué hace el parámetro parent
? No he visto demasiados ejemplos que utilizan esto. La mayoría de ellos simplemente reutiliza/inflan un diseño de fila y lo devuelven.
(Lo digo porque tengo una animación en clic en mi ListView
. Específicamente this one that aims to replicate Spotify's dropdown quick action menu. Mi animación ha sido un poco lento. Después de diagnosticar este problema por un tiempo, me he dado cuenta de que esto se ha debido a el hecho de que mi método getView()
tarda un poco en completarse ya que estoy inflando un nuevo diseño de fila en cada iteración. Alguien sugirió almacenar en caché el diseño de fila en un ViewHolder
mientras que otros ejemplos apuntan a reutilizar el parámetro convertView
, es decir, solo inflar un diseño de fila si convertView
es nulo.)
¡Esta es una muy buena respuesta! – Tarik
la mejor respuesta tnx –