RecycleView4种定位滚动方式演示

2018-10-20 20:44:03

概述

相信大家在项目中使用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);

主角总是最后才登场,这种方式是定位到指定项如果该项可以置顶就将其置顶显示。比如:微信联系人的字母索引定位就是采用这种方式实现。

资源下载

apk下载

Github

其他资料

Android RecyclerView滚动定位

RecyclerView调用smoothScrollToPosition() 控制滑动速度

RecyclerView使用技巧-自动滚动

如何获取 RecyclerView 的滑动距离?

RecyclerView滚动到指定位置



作者:不开车的擎天柱
链接:https://www.jianshu.com/p/3acc395ae933
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 2021-01-05 15:41:42

    nodejs修改时区

    ​let date = new Date(); date.setHours(date.getHours() + 8);

  • 2021-01-06 23:09:38

    mp3解码器转PCM合并

    首先,为了混合两个音频文件,您需要操纵它们的原始表示;由于MP3文件被压缩,您无法直接访问信号的原始表示.您需要对压缩的MP3流进行解码,以便“理解”您的音频信号的波形,然后可以混合使用.

  • 2021-01-08 16:47:37

    nodejs如何使用fetch

    node 中没有实现 fetch,你可以使用 node-fetch,使得在 node 中也可以使用 fetch.