Android Recyclerview Layoutmanager's onLayoutChildren llamado cuando se cambia el contenido del elemento
Tengo una vista de reciclador con el administrador de diseño personalizado (es un administrador de diseño twowayview staggeredgridview https://github.com/lucasr/twoway-view/blob/master/layouts/src/main/java/org/lucasr/twowayview/widget/ StaggeredGridLayoutManager.java )
Estoy utilizando esto para mostrar la lista de imágenes. Estas imágenes se cargan asincrónicamente, es decir, cuando los elementos se vuelven activos, i decodificar datos de imagen y luego cargar ese mapa de bits en estas vistas de elementos de lista.
- El desplazamiento de ViewPager no funciona con RecyclerView
- RecyclerView notifyItemInserted IllegalStateException
- Android Firebase chat RecyclerView desplazamiento automático hacia abajo cuando se agrega un nuevo elemento
- Obtener el elemento visible en el centro de RecycleView al desplazarse
- El trabajo de CollapsingTolbar con fagment contiene SwipeRefreshLayout y RecycleView
ahora, el problema es siempre que el bitmap de la imagen fijada en el viewview de un artículo, hace onLayoutChildren ser llamado en el encargado de la disposición, que entonces pone de nuevo a todos los niños otra vez.
¿Se trata de un comportamiento esperado? es decir, cambiar el contenido del elemento hijo (aquí, imageview) hace que el padre reciclerview emita un onLayoutChildren en su layoutmanager?
si no, entonces ¿cómo puedo evitar esto?
Gracias,
- Biblioteca avanzada de RecyclerView - ejemplos de código
- Agregar dinámicamente vistas a un recycleview.viewholder
- "LayoutManager ya está conectado a un RecyclerView" error
- Pasar la posición en el ListView al niño RecyclerView Adapter
- RecyclerView: java.lang.IndexOutOfBoundsException: Inconsistencia detectada. Posición de artículo no válida
- Android java onClick No se pudo ejecutar el método de la actividad
- Tipos incompatibles: no se puede emitir el visor a imageviewholder
- Hacer desplazamiento de vista con un recyclerview y appbar
Sí, así funciona el sistema de disposición. Si un niño solicita un diseño, se llamará a todos los padres de su onLayout.
Si su vista no cambia el tamaño cuando llega el nuevo mapa de bits, puede manejarlo escribiendo una vista personalizada que amplíe su vista e impida llamadas requestLayout
. Busque eatRequestLayout
en el código fuente de RecyclerView para obtener una idea acerca de cómo hacerlo.