entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Android - Entendiendo bien el metodo getView de un BaseAdapter

Hola.

De pronto me ha surgido una duda que pensaba la tenia bien resuelta. Es respecto al funcionamiento del metodo getView en una clase que extienda de BaseAdapter.

El método suele recibir los siguientes parámetros:

int position, View convertView, ViewGroup parent

Cuando indicamos la siguiente condición:

if (convertView == null)

Estamos controlando si el View ha sido inflado. Pero se refiere a una linea del listView verdad? no a lo que se ve en TODA la pantalla.

Gracias

1 Respuesta

3votos

white Puntos75880

Hola @egotiz_gonzales, el metodo getView() se ejecuta cada vez que hacemos "scroll" y al iniciar el adaptador, aqui inflamos la vista de acuerdo a cada fila int position es decir:

Aqui infla una linea del listView y no todo el listView hay que tener en cuenta que esto se recicla y cada vez que hacemos "scroll" se estara volviendo a inflar la fila del listView, el funcionamiento del adaptador es:

getView es llamado x veces de acuerdo al metodo getCount() del adaptador. si converView es nulo se infla asi se evita el volver a inflarlo.

para hacerlo mas eficaz, mejorar el performance evitando llamar a findViewById() x veces se suele utilizar el patron de diseño ViewHolder que basicamente lo que hace es un cache. ViewHolder es basicamente una clase estatica que contiene tantos widgets como la vista tenga.

http://developer.android.com/training/improving-layouts/smooth-scrolling.html
http://ricston.com/blog/optimising-listview-viewholder-pattern/

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta