Wie verwende ich RecyclerView.scrollToPosition (), um die Position an den Anfang der aktuellen Ansicht zu verschieben?

8

Das RecyclerView.scrollToPosition() ist extrem seltsam. Beispiel: Eine RecyclerView namens "rv" .

  1. Wenn nun Element 10 unter dem aktuellen RecyclerView , Aufruf rv.scrollToPosition(10) ist, blättert das RecyclerView Element 10 nach unten.

  2. Wenn jetzt Element 10 im aktuellen RecyclerView , Aufruf rv.scrollToPosition(10) ist, wird kein Scrolling stattfinden, es wird nichts gemacht.

  3. Wenn sich nun Element 10 an der Spitze des aktuellen RecyclerView befindet, rufen Sie rv.scrollToPosition(10) auf, wird RecyclerView Element 10 nach oben scrollen.

Um das Verständnis zu erleichtern, sehen Sie sich dieses Bild an.

Aber was ich brauche, ist, dass, wenn ich es anrufe, die RecyclerView die vermeintliche Position an die Spitze der aktuellen Ansicht scrollen wird, genau wie in Fall 3. Wie geht das?

    
cryyyyy 25.10.2015, 10:47
quelle

2 Antworten

21

Wenn ich die Frage verstehe, möchten Sie zu einer bestimmten Position blättern, aber diese Position ist die Position des Adapters und nicht die Position des Elements RecyclerView .

Das erreichen Sie nur über LayoutManager .

Machen Sie etwas wie:

%Vor%     
yugidroid 25.10.2015 12:37
quelle
1

Der folgende Link könnte Ihr Problem lösen:

Ссылка

Erstellen Sie einfach einen SmoothScroller mit der Präferenz STAP_TO_START:

%Vor%

Jetzt legen Sie die Position fest, zu der Sie blättern möchten:

%Vor%

Und übergeben Sie diesen SmoothScroller an den LayoutManager:

%Vor%     
Ritesh 29.04.2017 14:44
quelle