我想在recyclelerview中按y方向滚动一定数量的像素。我知道有scrollToPosition()
或scrollToPositionWithOffset()
等方法。但是,那些并不符合我的需要。
我看到LayoutManager
提供了方法scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state)
。这听起来像我想要的。
我该如何使用它?什么是recycler
和state
?我没有在网上找到任何例子,所以有些代码会很有用。
答案 0 :(得分:9)
我不知道scrollVerticallyBy
,它看起来更像是RecyclerView
的内部方法。
您是不是只是在寻找方法scrollBy(int x, int y)
和smoothScrollBy(int dx, int dy)
?
来自文档:
public void scrollBy(int x,int y)
移动视图的滚动位置。这将导致对onScrollChanged(int,int,int,int)的调用,并且视图将失效。
参数
x int:水平滚动的像素数量
y int:垂直滚动的像素数
您可以使用如下方法:
recyclerView.scrollBy(0, 50); //Scroll 50 pixels down
recyclerView.scrollBy(0, -50); //Scroll 50 pixels up
smoothScrollBy
同样如此。