現在來總結下Recycleview的滑動監聽
相信很多人朋友在開發中經常有這種需求
常見需求監聽 上滑,下滑 ,top,以及bottom
簡單明白上代碼
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {}
這個方法監聽上下滑
如果 dx>0 則表示 右滑 ,dx<0 表示 左滑
// dy <0 表示 上滑, dy>0 表示下滑
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
//onScrollStateChanged 方法
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
//判斷是當前layoutManager是否爲LinearLayoutManager
//只有LinearLayoutManager纔有查找第一個和最後一個可見view位置的方法
if (layoutManager instanceof LinearLayoutManager) {
LinearLayoutManager linearManager = (LinearLayoutManager) layoutManager;
//獲取最後一個可見view的位置
int lastItemPosition = linearManager.findLastVisibleItemPosition();
//獲取第一個可見view的位置
int firstItemPosition = linearManager.findFirstVisibleItemPosition();
拿到第一個位置,頂部的判斷就已經很簡單了
底部判斷的話,同理有最後一個位置,加上item總數,進行判斷,這裏不再貼代碼