2015-06-06 10 views
12

Geridönüşüm görüşümde y yönünde belirli bir miktarda piksel kaydırmak istiyorum. scrollToPosition() veya scrollToPositionWithOffset() gibi yöntemlerin olduğunu biliyorum. Ancak, bunlar benim ihtiyaçlarına gerçekten uymuyor.Android RecyclerView ve LayoutManager ile scrollVerticallyBy() nasıl kullanılır?

LayoutManager'un scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) yöntemini gördüğünü gördüm. İstediğim gibi geliyor.

Nasıl kullanırım? recycler ve state nedir? Çevrimiçi hiçbir örnek bulamadım, bu yüzden bazı kodlar yararlı olacaktır.

+1

Bir çözüm buldunuz mu? –

cevap

6

RecyclerView için dahili bir yöntem gibi görünen scrollVerticallyBy hakkında bilmiyorum. Sadece scrollBy(int x, int y) ve smoothScrollBy(int dx, int dy) yöntemlerini mi arıyorsunuz? belgelerine

:

public void scrollBy (int x, int y)

sizin bakış kaydırılan sıraya taşır. Bu onScrollChanged (int, int, int, int) için bir çağrıya neden olur ve görünüm geçersiz kılınır.

Parametreler
x int: piksel sayısının yatay
y int kaydırma için:

recyclerView.scrollBy(0, 50); //Scroll 50 pixels down 
recyclerView.scrollBy(0, -50); //Scroll 50 pixels up 
: piksel sayısının Çok gibi yöntemleri kullanarak dikey

kaydırma için

Aynı şey smoothScrollBy için geçerlidir.

+0

Ruben tamamen haklı, 'scrollVerticallyBy' özel bir LayoutManager oluştururken geçersiz kıldığınız bir iç yöntemdir. Kullanımı hakkında daha fazla bilgi için [buraya] bakın (http://wiresareobsolete.com/2014/09/building-a-recyclerview-layoutmanager-part-1/) –

+1

scrollBy (int x, int y) ve smoothScrollBy (int dx, int dy) RecyclerView'da desteklenmediğinden öneriniz çalışmaz –

+1

Ne demek "desteklenmiyor"? Bu yöntemleri bir projede kullandım ve iyi çalıştılar. – rubengees

İlgili konular