Funkcja RecyclerView.setIsRecyclable() właściciela oglądania

0

Pytanie

Chcę, aby mój uchwyt widoku nie перерабатывался, oto kod:

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

Jednak, gdy widzę w dokumentacji tutaj: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#setIsRecyclable(boolean), jest napisane, że setIsRecycleable() zawsze musi być powiązany, i nie mam pojęcia o tym. Czy ktoś może podać przykładowy kod dla tego przypadku? Kiedy należy ponownie wywołać setIsRecyclable(true)? Dziękuję.

enter image description here

3
0

Nie przerabiać ViewHolder po prostu oznacza, że konkretnie ViewHolder zostaną zapisane i nie zastąpione, gdy pojawią się nowe dane do wiązania, problem w tym, że Adapter następnie należy podać jeszcze jeden ViewHolder aby zrekompensować to, że nie może wykorzystać ponownie.

Dlatego trzeba w końcu pozwolić mu переработаться, tj. setIsRecycleable(true) bo to podważa istotę RecyclerView jeśli w końcu będzie musiał tworzyć nowe widoki prezentacji danych.

Powodem, dla którego warto wyłączyć przetwarzanie, polega na tym, aby uniknąć przerw, być może, ViewHolder odtwarza animację lub pobiera wideo. Jak tylko to zrobisz, będziesz w stanie włączyć recyklingu, aby zwolnić ViewHolder aby upewnić się, że można go użyć ponownie.

2021-11-24 06:12:08
0

W tym przypadku lepiej użyć Listview. Cały sens recyclerview polega na tym, aby przerobić widok. Jeszcze proszę spojrzeć na ten post https://stackoverflow.com/a/36275862/3094367

2021-11-24 06:03:40
0

W rzeczywistości utylizacja wiąże się z typem widoku.
Po prostu zmieniasz każdy typ elementu, który jest wyjątkowy
Lubię:

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

W innych językach

Ta strona jest w innych językach

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