Android RecyclerView滑動監聽,判斷是否滑動到了最后一個item


項目中的需求,RecyclerView橫向滑動列表,要有加載更多的功能,給RecyclerView設置一個滑動監聽,在onScrolled方法中判斷一下滑動方向,然后在onScrollStateChanged方法中判斷一下是否滑動到最后一個item即可,代碼中已經寫了詳細的注釋。

recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
        //用來標記是否正在向最后一個滑動
        boolean isSlidingToLast = false;
 
        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
            LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
            // 當不滾動時
            if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                //獲取最后一個完全顯示的ItemPosition
                int lastVisibleItem = manager.findLastCompletelyVisibleItemPosition();
                int totalItemCount = manager.getItemCount();
 
                // 判斷是否滾動到底部,並且是向右滾動
                if (lastVisibleItem == (totalItemCount - 1) && isSlidingToLast) {
                    //加載更多功能的代碼
                }
            }
        }
 
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            //dx用來判斷橫向滑動方向,dy用來判斷縱向滑動方向
            if (dx > 0) {
                //大於0表示正在向右滾動
                isSlidingToLast = true;
            } else {
                //小於等於0表示停止或向左滾動
                isSlidingToLast = false;
            }
        }
    });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM