RecyclerView.Viewholder'ın setİsRecyclable () işlevi

0

Soru

Görünüm tutucumu geri dönüştürülmeyecek şekilde ayarlamak istiyorum, işte kod:

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

Ancak, buradaki belgeleri gördüğümde: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#setIsRecyclable(boolean)setİsRecycleable() öğesinin her zaman eşleştirilmesi gerektiği yazılmıştır ve bu konuda hiçbir fikrim yok. Herkes bu dava için örnek bir kod sağlayabilir mi? Setisrecyclable'ı(true) tekrar ne zaman aramalıyım? Teşekkürler.

enter image description here

3
0

Geri dönüşüm değil ViewHolder sadece bu belirli anlamına gelir ViewHolder bağlanacak yeni veriler olduğunda kaydedilecek ve üzerine yazılmayacak, bununla ilgili sorun şu şekildedir: Adapter daha sonra başka bir tane tedarik etmeniz gerekecek ViewHolder yeniden kullanamayacağı şeyi telafi etmek için.

Bu yüzden sonunda geri dönüşüme izin vermeniz gerekir. setIsRecycleable(true) çünkü bu bir nevi yenilgiye uğratıyor. RecyclerView verileri temsil etmek için yeni görünümler oluşturmak zorunda kalırsa.

Geri dönüşümü kapatmak isteyebileceğiniz bir neden, kesintilerden kaçınmaktır, belki de ViewHolder animasyon oynatılıyor veya video yükleniyor. Bunu yaptıktan sonra, geri dönüşümü açmak için geri dönüşümü açabilirsiniz. ViewHolder tekrar kullanılabileceğinden emin olmak için.

2021-11-24 06:12:08
0

Bu durumda Listview kullanmak daha iyidir. Recyclerview'ın tüm anlamı görünümü geri dönüştürmektir. Aksi takdirde bu yazıya bakın https://stackoverflow.com/a/36275862/3094367

2021-11-24 06:03:40
0

Aslında geri dönüşüm viewType ile ilgilidir.
Sadece her itemType benzersizdir değiştirin
hoşlanmak:

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

Diğer dillerde

Bu sayfa diğer dillerde

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