Ich weiß nicht, warum dieses Verhalten passiert, aber Aufruf notifyItemInserted(0)
(erste Position) wird nicht die Ansicht animieren. An anderen Positionen funktioniert alles gut.android recyclerview notifyItemInserted Animation
Animation in diesem Fall arbeiten:
friendsList.remove(positionFriend);
friendsList.add(1, newFriend);
notifyItemInserted(1);
notifyItemRemoved(positionFriend+1);
Animation, in diesem Fall nicht funktioniert:
friendsList.remove(positionFriend);
friendsList.add(0, newFriend);
notifyItemInserted(0);
notifyItemRemoved(positionFriend+1);
Erwartetes Verhalten: Element an der Oberseite eingeführt und Animation einfügen dort geschieht.
Was passiert: Keine Insert-Animation wird angezeigt, eigentlich denke ich 'visuell', erstes Element verschwindet und Bewegung Animation passiert.
oh, deshalb werden die Elemente verschoben. Es ist ein merkwürdiges Verhalten, und Ihre Behebung sollte nativ sein ... Eine letzte Sache, irgendeine Weise recycler.scrollToPosition (0) zu tun, ohne eine Referenz im Adapterkonstruktor zu übergeben? –
Ich stimme zu, dass es aus Benutzersicht ein komisches Verhalten ist, aber wenn man sich vorstellt, wie der RecyclerView im Hintergrund codiert ist, ist es nur ein logisches Verhalten. Nicht dass ich mir dessen bewusst bin, ich nenne normalerweise 'notify_' von außerhalb des Adapters und lasse den Adapter nur die Datenliste und den BindView-Code sein. – Budius