Saltar al contenido

¿Cómo funciona el método getView() al crear su propio adaptador personalizado?

Te damos la bienvenida a nuestra comunidad, ahora vas a hallar la respuesta a lo que necesitas.

Solución:

1: El LayoutInflater toma sus archivos XML de diseño y crea diferentes objetos de vista a partir de su contenido.

2: Los adaptadores están diseñados para reutilizar Vistas, cuando se desplaza una Vista para que ya no esté visible, se puede usar para una de las nuevas Vistas que aparecen. Esta vista reutilizada es la convertView. Si esto es null significa que no hay una Vista reciclada y tenemos que crear una nueva, de lo contrario deberíamos usarla para evitar crear una nueva.

3: El parent se proporciona para que pueda inflar su vista en eso para los parámetros de diseño adecuados.

Todos estos juntos se pueden usar para crear de manera efectiva la vista que aparecerá en su lista (u otra vista que requiera un adaptador):

public View getView(int position, @Nullable View convertView, ViewGroup parent)
    if (convertView == null) 
        //We must create a View:
        convertView = inflater.inflate(R.layout.my_list_item, parent, false);
    
    //Here we can do changes to the convertView, such as set a text on a TextView 
    //or an image on an ImageView.
    return convertView;

Fíjate en el uso de la LayoutInflater, ese parent puede usarse como un argumento para ello, y cómo convertView se reutiliza

getView() El método en Adapter es para generar la vista del elemento de un ListView, Gallery,…

  1. LayoutInflater se utiliza para obtener el objeto Vista que define en un diseño xml (el objeto raíz, normalmente un LinearLayout,
    FrameLayout, o RelativeLayout)

  2. convertView es para reciclar. Digamos que tiene una vista de lista que solo puede mostrar 10 elementos a la vez, y actualmente muestra el elemento 1 -> elemento 10. Cuando se desplaza hacia abajo un elemento, el elemento 1 estará fuera de la pantalla y se mostrará el elemento 11 . Para generar Vista para el elemento 11, se llamará al método getView() y
    convertView aquí está la vista del elemento 1 (que ya no es necesario). Entonces, en lugar de crear un nuevo objeto View para el elemento 11 (que es costoso), ¿por qué no reutilizarlo? convertView? => solo revisamos convertView es
    null o no, si null crear nueva vista, de lo contrario reutilizar convertView.

  3. parentView es ListView o Gallery… que contiene la vista del elemento que getView() genera

Nota: no llama a este método directamente, solo necesita implementarlo para decirle a la vista principal cómo generar la vista del elemento.

Puedes echar un vistazo a este vídeo sobre la vista de lista. Es de Google IO de los últimos años y, en mi opinión, sigue siendo el mejor recorrido por las vistas de lista.

  1. Infla diseños (los archivos xml en su carpeta res/layout/) en objetos java como LinearLayout y otras vistas.

  2. Mire el video, lo pondrá al día con el uso de la vista de conversión, básicamente es una vista reciclada que espera ser reutilizada por usted, para evitar crear un nuevo objeto y ralentizar el desplazamiento de su lista.

  3. Le permite hacer referencia a su vista de lista desde el adaptador.

Comentarios y puntuaciones

Acuérdate de que tienes la capacidad de valorar este escrito .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *