Android 开发笔记: 获取RecyclerView 滑动距离

来源:互联网 发布:民科 知乎 编辑:程序博客网 时间:2024/05/19 19:42

     项目里有一个功能是根据RecyclerView的滑动距离来刷新一些组件的UI,搜了一下常用的方法,记录一个比较靠谱的办法:

     

public int getScollYDistance() {      LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();      int position = layoutManager.findFirstVisibleItemPosition();      View firstVisiableChildView = layoutManager.findViewByPosition(position);      int itemHeight = firstVisiableChildView.getHeight();      return (position) * itemHeight - firstVisiableChildView.getTop();  }
      这个方法使用position * 该position的view高度 来计算已经滑动的距离,其实是默认了每个被划过的item view的高度是一致的,有点偷懒之嫌,不过假如我们项目中每个item View的高度确实一致的,直接这么使用也无妨,在每个item view 高度不一致的情况下,可以通过记录每种type的view的高度,然后根据已划过的view的type去累计计算滑动距离。

    在LayoutManager 为LinearLayoutManager并且每个item View的高度一致时,时该方法的返回值即是滑动的距离。

    参考文章:点击打开链接