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
,…
-
LayoutInflater
se utiliza para obtener el objeto Vista que define en un diseño xml (el objeto raíz, normalmente unLinearLayout
,
FrameLayout
, oRelativeLayout
) -
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 revisamosconvertView
es
null o no, si null crear nueva vista, de lo contrario reutilizarconvertView
. -
parentView
es ListView o Gallery… que contiene la vista del elemento quegetView()
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.
-
Infla diseños (los archivos xml en su carpeta res/layout/) en objetos java como LinearLayout y otras vistas.
-
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.
-
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 .