RecyclerView滑动到底部监听

RecyclerView滑动监听

最近在用RecyclerView的时候碰到了一种有点坑的情况,其实也是由于自己水平不高的造成的…
功能描述:
本项目中使用RecyclerView列表增加了上拉加载的功能,在加载过程中会在列表底部添加一个”正在加载中”的Item作为加载提示.本项目采用滑动监听+标志位 方式完成上拉加载功能.

  • 滑动监听当中做的工作是监听当前的滑动状态.SCROLL_STATE_IDLE 表示为停止滚动状态
    RecyclerView滑动到底部监听

  • Adapter当中的footShow标志为表示是否显示加载提示Item(当前提到的RecyclerView是放置于Fragment当中,并用Adapter进行处理)
    RecyclerView滑动到底部监听

功能实现:
在滑动监听addOnScrollListener中,当滑动列表状态newState 为SCROLL_STATE_IDLE时,如果标志位footShow为true,则表示处于列表底部,需要加载新一页数据.
RecyclerView滑动到底部监听
问题:
本上拉加载方案虽然能够达到目的,但是也带来了另一个问题.即在滑动监听当中只监听到列表的滑动状态,而不是明确的监听滑动到底部事件.

在使用swipeRefreshLayout 达成下拉刷新的功能,便会产生冲突.因为下拉刷新的下拉动作同样会触发到列表的滑动监听.
解决方案:
改变滑动到底部的判断方式,通过manager.findLastVisibleItemPosition()获取当前窗口上显示的最后一个Item所在位置来判断是否滑动到底部.
RecyclerView滑动到底部监听

————–问题排除—————