1. 程式人生 > >RecycleView 4種定位滾動方式演示

RecycleView 4種定位滾動方式演示

相信大家在專案中使用RecyclerView時,經常會遇到這樣的需求:
將RecyclerView滑動到指定位置,或者檢索RecyclerView的某一項(各個項的高度不確定),然後定位滾動這到一項,將它顯示。

下面就講解4種RecyclerView定位滾動的方式及具體效果演示。

scrollBy

recyclerView.scrollBy(x, y)

使用:recyclerView.scrollBy(x, y)

scrollBy(x, y)這個方法是自己去控制移動的距離,單位是畫素,所以在使用scrollBy(x, y)需要自己去計算移動的高度或寬度。

scrollToPosition

recyclerView.scrollToPosition(position)

使用: recyclerView.scrollToPosition(position)

scrollToPosition(position)這個方法的作用是定位到指定項,就是把你想顯示的項顯示出來,但是在螢幕的什麼位置是不管的,只要那一項現在看得到了,那它就罷工了!

smoothScrollToPosition

recyclerView.smoothScrollToPosition(position)

使用: recyclerView.smoothScrollToPosition(position)

smoothScrollToPosition(position)scrollToPosition(position)效果基本相似,也是把你想顯示的項顯示出來,只要那一項現在看得到了,那它就罷工了,不同的是smoothScrollToPosition是平滑到你想顯示的項,而scrollToPosition是直接定位顯示!

scrollToPositionWithOffset

scrollToPositionWithOffset(position,0)

使用: ((LinearLayoutManager)recyclerView.getLayoutManager()).scrollToPositionWithOffset(position,0);

主角總是最後才登場,這種方式是定位到指定項如果該項可以置頂就將其置頂顯示。

scrollToPositionWithOffset 會把 Item 移動到可見 Item 的第一項,即使它已經在可見 Item 之中。另外它還有 offset 引數,表示 Item 移動到第一項後跟 RecyclerView 上邊界或下邊界之間的距離(預設是 0)如果想滑動到某個Item的上面一些  

scrollToPositionWithOffset(int position, int offset) {)  offset為正值  如果想滑動到某個item 的下邊  offset用負數