天天看點

【2022/01/26】RecyclerView上拉和下拉

RecyclerView上拉和下拉

【2022/01/26】RecyclerView上拉和下拉
最近為了寫一個簡易的多選清單功能,使用了RecyclerView,發現如果資料太多的話會發生卡頓,是以決定使用分頁,也就是大家常見的上拉加載資料,也有下拉重新整理資料,我們這裡使用滾動事件

addOnScrollListener

來完成這個功能。

上拉加載

  1. RecyclerView

    上添加監聽事件
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
    }
});
           
  1. 當我們無法上拉以後,以及松開手指以後,觸發資料加載
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
	// canScrollVertically參數是1是無法上拉
        if (!recyclerView.canScrollVertically(1) && newState == RecyclerView.SCROLL_STATE_IDLE) {
            // 實作資料加載
        }
    }
});
           

下拉重新整理

  1. 原理跟上拉一樣,隻是判斷無法下拉後,重新整理資料
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
	// canScrollVertically參數是-1是無法上拉
        if (!recyclerView.canScrollVertically(-1) && newState == RecyclerView.SCROLL_STATE_IDLE) {
            // 實作資料加載
        }
    }
});
           

繼續閱讀