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

廉价感情. 提交于 2019-12-02 13:31:45

     项目里有一个功能是根据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的高度一致时,时该方法的返回值即是滑动的距离。

    参考文章:点击打开链接

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!