Ho un Adapter
con più tipi di visualizzazione. Ho notato che onCreateViewHolder()
viene chiamato abbastanza spesso anche se onCreateViewHolder()
, onBindViewHolder()
e getItemViewType()
sono implementati correttamente.Algoritmo di riutilizzo di RecyclerView
Per esempio il mio RecyclerView dovrebbe visualizzare un semplice elenco di elementi diversi come questo e lascia supporre che tutti gli elementi hanno la stessa altezza vista e che 6 elementi riempire l'intero schermo (corrisponde all'altezza della RecyclerView):
> ViewType0
> ViewType0
> ViewType0
> ViewType0
> ViewType0
> ViewType1
> ViewType2
> ViewType2
> ViewType2
> ViewType2
> ViewType1
> ViewType1
> ViewType1
> ViewType0
> ViewType0
> ViewType0
Mentre si scorre e si raggiunge la fine della lista, sembra che per gli ultimi due articoli (ViewType0
) RecyclerView chiami onCreateViewHolder()
ma dal mio punto di vista il riciclabile dovrebbe riciclare (riutilizzare) quello già esistente (ce ne sono 5 nella parte superiore di la lista che non è visibile) piuttosto che ricreare due nuovi per gli ultimi due elementi.
Questo comportamento è normale? Sono le impostazioni che posso applicare per evitare la ricreazione del nuovo ViewHolder perché dovrebbero esserci sicuramente ViewHolders riutilizzabili (dall'alto dell'elenco)?
Buon punto. L'ho notato anch'io. –