0

我有一个RecyclerView共有30个项目,在屏幕上可以看到10个项目。我想用setScrollPosition()滚动RecyclerViewAndroid RecyclerView setScrollPosition()延迟问题

但是当我传递一个值, 例如:setScrollPosition(5),该RecyclerView是没有得到由5个项目滚动。但是当我通过价值10或以上时,滚动开始。

延误的原因是什么? 这是因为RecyclerView偏移量是在最后一个可视位置? 如何解决这个问题?

回答

1

假设您的RecyclerView中有30个项目,并且如果您想滚动到15th的位置,则可以简单地使用scrollToPosition()函数滚动到该特定位置。

如果你想通过5个位置进行滚动和你已经使用LinearLayoutManager,那么你可以这样做:

LinearLayoutManager llm = (LinearLayoutManager)mRecyclerView.getLayoutManager(); 
int lastPos = llm.findLastVisibleItemPosition(); 
mRecyclerView.scrollToPosition(lastPos + 5); 
+0

我想这已经和正常工作。但我想要的是,如果我做scrollToPosition(2),那么item2应该到顶部。我能够在ListView中实现这种滚动。有什么方法可以在RecyclerView中实现它? – user3361879

+0

如果您希望item2位于顶部,则使用llm.scrollToPositionWithOffset(2,0) –

+0

是的。我知道了。谢谢。 – user3361879