Nie wiem, dlaczego to zachowanie się dzieje, ale wywołanie notifyItemInserted(0)
(tylko pierwsza pozycja) nie będzie animować widoku. Wszystko działa dobrze na innych pozycjach.Android recyclerview notifyItemInserted animation
Animacja działa w tym przypadku:
friendsList.remove(positionFriend);
friendsList.add(1, newFriend);
notifyItemInserted(1);
notifyItemRemoved(positionFriend+1);
Animacja nie działa w tym przypadku:
friendsList.remove(positionFriend);
friendsList.add(0, newFriend);
notifyItemInserted(0);
notifyItemRemoved(positionFriend+1);
oczekiwane zachowanie: Element wstawiany na wierzchu i wstawić animację tam się dzieje.
Co się dzieje: brak animacji wstawiania, właściwie myślę, że "wizualnie", pierwszy element znika i następuje ruch animacji.
oh, to dlatego elementy są przenoszone. To dziwne zachowanie, a twoja poprawka powinna być natywna ... Ostatnia rzecz, jakikolwiek sposób zrobić recycler.scrollToPosition (0) bez przekazywania referencji w konstruktorze adapterów? –
Zgadzam się, że to dziwne zachowanie z punktu widzenia użytkownika, ale jeśli wyobrażałeś sobie, jak RecyclerView jest kodowany z tyłu, to tylko logiczne zachowanie. Nie o tym wiem, zwykle nazywam 'notify_' spoza adaptera, i niech adapter będzie po prostu listą danych i kodem bindView. – Budius