2015-06-06 18 views
12

Chciałbym przewinąć o pewną liczbę pikseli w kierunku y w moim widoku recyclerview. Wiem, że istnieją metody takie jak scrollToPosition() lub scrollToPositionWithOffset(). Jednak te naprawdę nie pasują do moich potrzeb.Jak korzystać z scrollVerticallyBy() z Android RecyclerView i LayoutManager?

Zobaczyłem, że LayoutManager zapewnia metodę scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state). To brzmi jak to, czego chcę.

Jak tego użyć? Co to są recycler i? Nie znalazłem żadnych przykładów w Internecie, więc przydałby się jakiś kod.

+1

Czy znalazłeś rozwiązanie? –

Odpowiedz

6

Nie wiem o scrollVerticallyBy, która wygląda bardziej jak wewnętrzna metoda dla RecyclerView. Po prostu nie szukasz metod: scrollBy(int x, int y) i smoothScrollBy(int dx, int dy)?

Z dokumentacji:

public void scrollBy (int x, int y)

Przesuń przewijane pozycję widoku. Spowoduje to wywołanie onScrollChanged (int, int, int, int), a widok zostanie unieważniony.

Parametry
x int: ilość pikseli, aby zmieniać poziomo
r Int: ilość pikseli, aby zmieniać pionowo

można użyć metod tak:

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

To samo dotyczy smoothScrollBy.

+0

Ruben ma całkowitą rację, 'scrollVerticallyBy' jest wewnętrzną metodą, którą można przesłonić podczas tworzenia niestandardowego menedżera LayoutManager. Aby uzyskać więcej informacji o jego użyciu, spójrz [tutaj] (http://wiresareobsolete.com/2014/09/building-a-recyclerview-layoutmanager-part-1/) –

+1

scrollBy (int x, int y) i smoothScrollBy (int dx, int dy) nie jest obsługiwany w RecyclerView, więc Twoja sugestia nie zadziała –

+1

Co masz na myśli przez "nie jest obsługiwany"? Używałem tych metod w projekcie i działały dobrze. – rubengees

Powiązane problemy