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用负数

猜你喜欢

转载自blog.csdn.net/Jason_HD/article/details/84863251
今日推荐