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