Red de conocimientos turísticos - Información de alquiler - Más información sobre el método setHasFixedSize de RecyclerView

Más información sobre el método setHasFixedSize de RecyclerView

1. En primer lugar, para mejorar la velocidad de ejecución, prestaremos especial atención al método onDraw de View, ya que provocará la recolección de basura, lo que provocará un retraso, por lo que al realizar animaciones en Android , hágalo durante la inicialización o animación y asigne objetos entre ellos. Nunca asigne objetos mientras se ejecuta la animación.

2. Reduzca la frecuencia de llamadas al método onDraw En términos generales, la llamada al método onDraw se debe a invalidación, así que evite llamadas innecesarias.

3. Y es muy caro. La operación es para facilitar el diseño. Si se llama al método requestLayout, atravesará toda la interfaz para determinar el tamaño requerido para cada vista. Durante el proceso de recorrido, es posible que sea necesario atravesar varias veces una jerarquía que entre en conflicto con el tamaño: Por lo tanto, para los desarrolladores En otras palabras, una capa menos de ViewGroup es un problema que debe considerarse, y los problemas de rendimiento causados ​​por una estructura jerárquica demasiado superficial son particularmente importantes.

4. Para interfaces complejas, utilice ViewGroups personalizados

Comentarios fuente de RecycleView

En el código fuente inicial de RecycleView, se veía así

si hasFixedSize = true, como se mencionó anteriormente, llamar a requestLayout es una operación muy costosa, lo cual será terrible si tu RecycleView inserta y elimina datos con frecuencia.

Por lo tanto, configura setHasFixedSize en verdadero, para que el cambio el contenido del adaptador no cambiará la altura y el ancho de su Vista, y luego lo configurará en Verdadero para evitar requestLayout innecesario

Si cambiamos la altura/el ancho wrap_content se establece en RecyclerView y setHasFixedSize debería ser falso, Debido a que cada elemento insertado por el adaptador cambiará de tamaño según el elemento insertado/eliminado, por lo que el tamaño del elemento agregado/eliminado cada vez será diferente. RecyclerViewRecyclerView

Para mayor claridad, si usamos ancho/alto fijo

podemos usar my_recycler_view.setHasFixedSize(true)

Luego, si no usamos fijo Ancho/Alto

Deberíamos usar my_recycler_view.setHasFixedSize(true)

porque my_recycler_view.setHasFixedSize(true)