最近做项目要判断RecycleView是否滑动到底部,在网上找了很多方法,但试用之后都会有点小bug。
后来找到一个方法,暂时没有发现bug。和我想要的一样。
其实ReycleViewde判断滑动到底部的方法很多,这里只说一种
就是根据:RecycleView右边自带的滑动条判断的
//1监听recyclView是否滑动到底部
recycleView.setOnScrollListener(new RecyclerView.OnScrollListener() {
//判断是不是往上拖动
public boolean isLastReflash;
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
/*
* 滑动停止之后检测是否滑动到底部
**/
if(newState == RecyclerView.SCROLL_STATE_IDLE &&isLastReflash){
if(recycleView.computeVerticalScrollExtent()+recyclerView.computeVerticalScrollOffset()>=recyclerView.computeVerticalScrollRange()){
// Toast.makeText(getContext(),"滑动到底部",Toast.LENGTH_SHORT).show();
//滑动到底部的时候一般要做加载更多的数据的操作...
/*
* 提示适配器
* */
recycleViewAdapter.notifyDataSetChanged();
}
}
}
//根据dy,dx可以判断是往哪个方向滑动
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if(dy>0){
isLastReflash = true;
}else{
isLastReflash = false;
}
}
});
可能你好像做一个返回顶部的逻辑操作,也是可以获取RecycleView的布局管理器,设置要滚到的地方即可
LinearLayoutManager linearLayoutManager= (LinearLayoutManager)recycleView.getLayoutManager();
linearLayoutManager.scrollToPositionWithOffset(0,0);
最近写的都是小知识点,毕竟自己菜,如果发现有错误,希望指出。。