RecyclerView.ViewHolder del setIsRecyclable() func

0

Pregunta

Quiero establecer mi punto de vista de titular a no reciclar, aquí está el código:

@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
    viewHolder.setIsRecyclable(false);
}

Sin embargo, cuando veo la documentación aquí: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#setIsRecyclable(boolean)escrito está que el setIsRecycleable() siempre debe estar emparejado y no tengo ni idea sobre esto. ¿Alguien puede proporcionar un código de ejemplo para este caso? Cuándo debo llamar al setIsRecyclable(verdadero) de nuevo? Gracias.

enter image description here

3
0

No reciclar la ViewHolder sólo significa que específica ViewHolder será retenido y no se sobrescribe cuando hay nuevos datos para enlazar, el problema con eso es que el Adapter a continuación, se necesita suministro de otro ViewHolder para compensar el que no puede volver a usar.

Es por eso que usted necesita para finalmente dejar que reciclar es decir, setIsRecycleable(true) porque poco se vence el punto de la RecyclerView si termina encima de tener que crear nuevos puntos de vista para representar los datos.

Una razón que puede que desee desactivar la papelera es para evitar interrupciones, tal vez la ViewHolder es la reproducción de una animación, o cargar un video. Una vez que su hecho de que usted puede, a continuación, encienda la papelera, a la liberación de la ViewHolder para asegurarse de que puede ser utilizado de nuevo.

2021-11-24 06:12:08
0

Es mejor usar Listview en este caso. Todo el sentido de la recyclerview es reciclar la vista. Más ver este post https://stackoverflow.com/a/36275862/3094367

2021-11-24 06:03:40
0

En realidad la papelera está relacionado con viewType.
Sólo cambia cada itemType es único
como:

@Override
public int getItemType(int position){
    return position
}
2021-11-24 06:28:44

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................