RecyclerView.ViewHolder je setIsRecyclable() func

0

Otázka

Chci, aby můj názor držák na ne recyklovat, tady je kód:

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

Nicméně, když jsem podívejte se do dokumentace zde: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#setIsRecyclable(boolean)je psáno, že setIsRecycleable() by měla být vždy párové a nemám tušení, o tom. Může někdo poskytnout nějaký ukázkový kód pro tento případ? Kdy bych měl zavolat setIsRecyclable(pravda), znovu? Díky.

enter image description here

3
0

Není recyklace ViewHolder to jen znamená, že konkrétní ViewHolder bude zachován a není přepsán, když je nová data, svázat, problém s tím je Adapter pak bude třeba dodávat další ViewHolder aby se na to jeden nemůže znovu použít.

To je důvod, proč budete muset nakonec nechat ho recyklovat, tj. setIsRecycleable(true) protože je to docela zbytečné, bod RecyclerView když to skončí nutnosti vytvářet nové pohledy představují data.

Důvod, proč možná budete chtít vypnout recyklovat je, aby se zabránilo přerušení, možná ViewHolder hraje animaci, nebo nahrání videa. Jakmile jeho práce pak můžete obrátit na recyklaci, aby se uvolnil ViewHolder ujistěte se, že to může být znovu použit.

2021-11-24 06:12:08
0

Je lepší použít Listview v tomto případě. Celý význam recyclerview je recyklovat názor. Ostatní viz tento příspěvek https://stackoverflow.com/a/36275862/3094367

2021-11-24 06:03:40
0

Vlastně recyklovat souvisí s viewType.
Stačí změnit každý typ položky je jedinečný
jako:

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

V jiných jazycích

Tato stránka je v jiných jazycích

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