2015-06-06 16 views
12

Vorrei scorrere da una certa quantità di pixel in direzione y nel mio recyclerview. So che esistono metodi come scrollToPosition() o scrollToPositionWithOffset(). Tuttavia, quelli in realtà non si adattano alle mie esigenze.Come utilizzare scrollVerticallyBy() con Android RecyclerView e LayoutManager?

Ho visto che LayoutManager fornisce un metodo scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state). Sembra proprio quello che voglio.

Come si usa? Cosa sono recycler e state? Non ho trovato alcun esempio online, quindi qualche codice sarebbe utile.

+1

Hai trovato una soluzione? –

risposta

6

Non so su scrollVerticallyBy, sembra più un metodo interno per RecyclerView. Non stai solo cercando i metodi scrollBy(int x, int y) e smoothScrollBy(int dx, int dy)?

Dalla documentazione:

public void scrollBy (int x, int y)

spostare la posizione scorrimento della visualizzazione. Ciò causerà una chiamata a onScrollChanged (int, int, int, int) e la vista verrà invalidata.

Parametri
x int: la quantità di pixel per scorrere da orizzontalmente
y int: la quantità di pixel per scorrere da verticalmente

È possibile utilizzare i metodi come così:

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

Lo stesso vale per smoothScrollBy.

+0

Ruben ha perfettamente ragione, 'scrollVerticallyBy' è un metodo interno che si sovrascrive quando si costruisce un LayoutManager personalizzato. Per maggiori informazioni sul suo utilizzo date un'occhiata [qui] (http://wiresareobsolete.com/2014/09/building-a-recyclerview-layoutmanager-part-1/) –

+1

scrollBy (int x, int y) e smoothScrollBy (int dx, int dy) non è supportato in RecyclerView quindi il tuo suggerimento non funzionerà –

+1

Cosa intendi per "non è supportato"? Ho usato questi metodi in un progetto e hanno funzionato bene. – rubengees