Mam Adapter
z wieloma typami widoków. Zauważyłem, że onCreateViewHolder()
jest wywoływana dość często, mimo że onCreateViewHolder()
, onBindViewHolder()
i getItemViewType()
są zaimplementowane poprawnie.RecyclerView reusing algorithm
Na przykład moja RecyclerView powinien wyświetlić prostą listę różnych przedmiotów, takich jak ten i pozwala zakładać, że wszystkie elementy mają taką samą wysokość widzenia i że 6 elementów wypełnić cały ekran (dopasowuje wysokość RecyclerView):
> ViewType0
> ViewType0
> ViewType0
> ViewType0
> ViewType0
> ViewType1
> ViewType2
> ViewType2
> ViewType2
> ViewType2
> ViewType1
> ViewType1
> ViewType1
> ViewType0
> ViewType0
> ViewType0
Podczas przewijania i dojścia do końca listy wydaje się, że dla dwóch ostatnich pozycji (ViewType0
) RecyclerView wywołuje onCreateViewHolder()
, ale z mojego punktu widzenia widok recyklingu powinien zawrócić (ponownie użyć) już istniejącego (na wierzchu jest 5) lista, która nie jest widoczna) zamiast ponownego tworzenia dwóch nowych dla dwóch ostatnich elementów.
Czy to normalne zachowanie? Czy ustawienia, które mogę zastosować, pozwalają uniknąć odtworzenia nowego obiektu ViewHolder, ponieważ powinny być na pewno wielokrotnego użytku ViewHolders (od początku listy)?
Dobra uwaga. Też to zauważyłem. –