最近在用RecyclerView的时候碰到了一种有点坑的情况,其实也是由于自己水平不高的造成的…
功能描述:
本项目中使用RecyclerView列表增加了上拉加载
的功能,在加载过程中会在列表底部添加一个”正在加载中”的Item作为加载提示
.本项目采用滑动监听+标志位
方式完成上拉加载功能.
功能实现:
在滑动监听addOnScrollListener
中,当滑动列表状态newState
为SCROLL_STATE_IDLE时,如果标志位footShow
为true,则表示处于列表底部,需要加载新一页数据.
问题:
本上拉加载方案虽然能够达到目的,但是也带来了另一个问题.即在滑动监听当中只监听到列表的滑动状态
,而不是明确的监听滑动到底部
事件.
在使用swipeRefreshLayout
达成下拉刷新
的功能,便会产生冲突.因为下拉刷新的下拉动作同样会触发到列表的滑动监听.
解决方案:
改变滑动到底部的判断方式,通过manager.findLastVisibleItemPosition()
获取当前窗口上显示的最后一个Item所在位置来判断是否滑动到底部.
————–问题排除—————