2015-06-06 6 views
12

Ich möchte in meiner Recycleransicht um eine bestimmte Anzahl von Pixeln in y-Richtung scrollen. Ich weiß, dass es Methoden wie scrollToPosition() oder scrollToPositionWithOffset() gibt. Diese passen jedoch nicht wirklich zu meinen Bedürfnissen.Wie benutze scrollVerticallyBy() mit Android RecyclerView und LayoutManager?

Ich sah, dass LayoutManager bietet eine Methode scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state). Das klingt nach dem, was ich will.

Wie benutze ich es? Was sind recycler und state? Ich habe keine Beispiele online gefunden, daher wäre ein Code hilfreich.

+1

Haben Sie eine Lösung gefunden? –

Antwort

6

Ich weiß nicht über , die mehr wie eine interne Methode für die RecyclerView aussieht. Sind Sie nicht nur auf der Suche nach den Methoden scrollBy(int x, int y) und smoothScrollBy(int dx, int dy)?

Aus der Dokumentation:

public void scrollBy (int x, int y)

Bewegen Sie die gescrollt Position Ihrer Ansicht. Dies führt zu einem Aufruf von onScrollChanged (int, int, int, int), und die Ansicht wird ungültig gemacht.

Parameter
x int: die Menge an Pixeln, die durch horizontal
y int zu blättern: die Menge an Pixeln, die durch vertikal

zu blättern, die Methoden wie so verwenden können:

recyclerView.scrollBy(0, 50); //Scroll 50 pixels down 
recyclerView.scrollBy(0, -50); //Scroll 50 pixels up 

Das gleiche gilt für smoothScrollBy.

+0

Ruben hat vollkommen recht, 'scrollVerticallyBy' ist eine interne Methode, die Sie überschreiben, wenn Sie einen benutzerdefinierten LayoutManager erstellen. Weitere Informationen über die Verwendung finden Sie [hier] (http://wiresareobsolete.com/2014/09/building-a-recyclerview-layoutmanager-part-1/) –

+1

scrollBy (int x, int y) und smoothScrollBy (int dx, int dy) wird in RecyclerView nicht unterstützt, daher funktioniert Ihr Vorschlag nicht –

+1

Was meinen Sie mit "wird nicht unterstützt"? Ich habe diese Methoden in einem Projekt verwendet und sie haben gut funktioniert. – rubengees

Verwandte Themen