RecyclerView.ViewHolder je setIsRecyclable() func

0

Otázka

Chcem nastaviť môj pohľad, aby držiteľ nie recyklovať, tu je kód:

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

Avšak, keď som pozrite si dokumentáciu tu: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#setIsRecyclable(boolean)je napísané, že setIsRecycleable() by mali vždy byť párové a nemám predstavu o tomto. Môže niekto poskytnúť vzor kód pre tento prípad? Keď by som mal zavolať setIsRecyclable(pravda) znova? Vďaka.

enter image description here

3
0

Nie recyklácia ViewHolder len znamená, že špecifické ViewHolder budú uchovávané a nie sú prepísané, keď je nové údaje sa viažu, problém s tým je Adapter potom bude potrebné dodávku iného ViewHolder aby sa za to nemôže opätovné použitie.

To je dôvod, prečo potrebujete, aby nakoniec ho nechajte ich recyklovať t. j. setIsRecycleable(true) pretože to trochu porazí bod RecyclerView ak to skončí nutnosti vytvárať nové pohľady na zobrazenie údajov.

Dôvod, prečo budete chcieť vypnúť recyklovať je, aby sa zabránilo prerušenia, možno ViewHolder je hrať animácie, alebo nahraní videa. Po jeho práce by ste mohli potom zapnite recyklovať, na uvoľnenie ViewHolder aby sa ubezpečil, že môžu byť znovu použité.

2021-11-24 06:12:08
0

Je lepšie použiť Listview v tomto prípade. Celý zmysle recyclerview je recyklácia názor. Iný vidieť tento príspevok https://stackoverflow.com/a/36275862/3094367

2021-11-24 06:03:40
0

Vlastne recyklácia súvisí s viewType.
Ak chcete len zmeniť každý itemType jedinečný
ako:

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

V iných jazykoch

Táto stránka je v iných jazykoch

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