2016-08-09 79 views
5

ich einen Artikel bin Hinzufügen Position 0 programamticly sehr gutneues Element an die Spitze des RecyclerView Hinzufügen

public void addQuestion(Question question){ 
    this.questionList.add(0, question); 
    notifyItemInserted(0); 
} 

Dies funktioniert auf recyclerview und die Elemente in der Liste oben erscheinen, aber der Benutzer hat blättern um den neuen Artikel zu sehen.

Gibt es einen Trick, wie der Artikel oben angezeigt wird und Recyclerview automatisch hoch scrollt?

Antwort

9

gut können Sie verwenden mRecyclerView.smoothScrollToPosition(int position)

Beispiel:

public void addQuestion(Question question){ 
    this.questionList.add(0, question); 
    notifyItemInserted(0); 
    mRecyclerView.smoothScrollToPosition(0); 
} 

UPDATE:

, wenn Sie das Scrollen auf bestimmte Artikel machen wollen wirklich glätten Sie einen Blick haben, können bei Antwort auf diese Frage

RecyclerView - How to smooth scroll to top of item on a certain position?

+0

es nicht so glatt wie notifyItemInserted ist, aber es ist der beste Weg, das zu handhaben! thx –

+0

Das ist großartig, danke! –

+1

'smoothScrollToPosition (0)' ist verzögert, wenn es mehr Elemente gibt, als die Liste im Moment zeigen kann (das habe ich erlebt). Ich habe einfach 'scrollToPosition (0)' stattdessen verwendet, es macht keinen Unterschied in "Glätte" – noongiya95

1

Ja, können Sie diese

mRecyclerView.smoothScrollToPosition(0); 
1

Versuchen Sie diese

mRecyclerView.smoothScrollToPosition(0); 
+0

genaue Kopie von Jemos Antwort: D –

+2

Scheint, wir beide gepostet gleiche Zeit –

+2

nein, Sie waren 25 Sekunden zu spät: D –