RecyclerView.ViewHolder e setIsRecyclable() func

0

Problema

Vreau să setați punctul meu de vedere titularului să nu recicleze, aici e codul:

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

Cu toate acestea, atunci când am vedea documentația de aici: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#setIsRecyclable(boolean)este scris că setIsRecycleable() ar trebui să fie întotdeauna asociat și nu am nici o idee despre acest lucru. Poate cineva oferi un exemplu de cod pentru acest caz? Când ar trebui să chem setIsRecyclable(adevărat) din nou? Multumesc.

enter image description here

3
0

Nu reciclării ViewHolder înseamnă doar că anumite ViewHolder vor fi păstrate și nu suprascrise atunci când există date noi pentru a lega, problema cu care este Adapter apoi va trebui să furnizeze un alt ViewHolder pentru a compensa unul nu se poate reutiliza.

Care este de ce aveți nevoie pentru a în cele din urmă să se recicleze și anume setIsRecycleable(true) pentru că anulează punctul de RecyclerView dacă se termină prin a avea pentru a crea noi puncte de vedere pentru a reprezenta datele.

Un motiv pentru care ați putea dori pentru a opri de reciclare este de a evita întreruperile, poate ViewHolder este un joc de animație, sau încărcarea unui video. După ce sa terminat ai putea apoi rândul său, pe de reciclare, pentru a elibera ViewHolder pentru a asigurați-vă că acesta poate fi utilizat din nou.

2021-11-24 06:12:08
0

Este mai bine să utilizați Listview în acest caz. Tot sensul de recyclerview este de a recicla vedere. Altcineva a vedea acest post https://stackoverflow.com/a/36275862/3094367

2021-11-24 06:03:40
0

De fapt recycle este legat de viewType.
Tocmai ai schimba la fiecare itemType este unic
cum ar fi:

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

În alte limbi

Această pagină este în alte limbi

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