美文网首页
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