android - pie - ¿Cuándo usamos el recyclerView.setHasFixedSize?
android pie (2)
Es interesante que RecyclerView sepa si su tamaño (ancho y alto) depende del contenido del adaptador para evitar costosas operaciones de diseño. Si RecyclerView sabe de antemano que su tamaño no depende del contenido del adaptador, entonces omitirá la comprobación de si su tamaño debería cambiar cada vez que se agrega o se elimina un elemento del adaptador. Esto es especialmente importante porque la inserción de elementos eliminados puede suceder muy a menudo.
Si el tamaño del RecyclerView (el propio RecyclerView) ...
... no depende del contenido del adaptador:
mRecyclerView.setHasFixedSize(true);
... depende del contenido del adaptador:
mRecyclerView.setHasFixedSize(false);
Si marca la clase RecyclerView , la verá con más detalles porque hasta el momento no se usa mHasFixedSize en tantos lugares de esa clase.
Establecerlo como verdadero no significa que el tamaño de RecyclerView sea fijo, solo significa que no cambiará debido al cambio en el contenido del adaptador. Por ejemplo, el tamaño de RecyclerView puede cambiar debido a un cambio de tamaño en su padre.
Aquí está la cosa: ¿Alguien sabe el método setHasFixedSize? algunos dicen que permite optimizaciones si todos los elementos son del mismo tamaño, y en la clase RecyclerView de android.support.v7.widget, comentó con esto: RecyclerView puede realizar varias optimizaciones si puede saber de antemano los cambios en el contenido del adaptador. No se puede cambiar el tamaño de RecyclerView. Si su uso de RecyclerView cae en esta categoría, establezca esto en verdadero.
¿Qué se supone que significa eso? ¿Alguien puede mostrarme el contexto de uso o explicar el significado de "esta categoría" arriba? muchas gracias.
setHasFixedSize () se utiliza para permitir que RecyclerView mantenga el mismo tamaño .
Esta información se utilizará para optimizarse .
Aquí está la url de referencia
http://antonioleiva.com/recyclerview/
Ejemplo:
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list);
recyclerView.setHasFixedSize(true);