美文网首页
RecyclerView 获得正确的滚动距离

RecyclerView 获得正确的滚动距离

作者: QXH313 | 来源:发表于2019-01-17 17:42 被阅读0次

这里面使用垂直滚动来举例子,横向滚中也是同样的道理:

研究过程中借鉴了google的方法这里面先给出链接:https://stackoverflow.com/questions/29581782/how-to-get-the-scrollposition-in-the-recyclerview-layoutmanager

在开发过程中经常遇到一些记录RecyclerView准确滚动距离的需求,但是并没有一个方法了精准的获取这个距离常见的方法如下:

错误尝试:在RecyclerView.OnScrollListener的回调方法onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy)里面累加dy,但是发现如果在滚动过程中,修改了头部内容的高度就会导致计算的结果出现错误.

中间还尝试了很多热心网友提供的方法都一一验证失败;

最后阅读源码发现recyclerView.computeVerticalScrollOffset(),这个方法是根据recyclerView的总长度和childView的数量,计算出childView的平均高度,再根据当前第一个可见childView的position估算出大概的scrollY滚动距离,就使用了这个方法:scrollY = recyclerView.computeVerticalScrollOffset();

相关文章

网友评论

      本文标题:RecyclerView 获得正确的滚动距离

      本文链接:https://www.haomeiwen.com/subject/iwdgzftx.html