RecyclerView手勢滑動(dòng)監(jiān)聽實(shí)現(xiàn)快速回到頂部功能

先看效果圖:

滑動(dòng)監(jiān)聽.gif
      //設(shè)置RecyclerView滑動(dòng)監(jiān)聽器 addOnScrollListener(),其中setOnScrollListener()方法已過時(shí)
       mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
               //獲得recyclerView的線性布局管理器
                LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
               //獲取到第一個(gè)item的顯示的下標(biāo)  不等于0表示第一個(gè)item處于不可見狀態(tài) 說明列表沒有滑動(dòng)到頂部 顯示回到頂部按鈕
                int firstVisibleItemPosition = manager.findFirstVisibleItemPosition();
                // 當(dāng)不滾動(dòng)時(shí)
                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                    // 判斷是否滾動(dòng)超過一屏
                    if (firstVisibleItemPosition == 0) {
                        ivTop.setVisibility(View.GONE);
                    } else {
                       //顯示回到頂部按鈕
                        ivTop.setVisibility(View.VISIBLE);
                    }
                //獲取RecyclerView滑動(dòng)時(shí)候的狀態(tài)
                } else if (newState == RecyclerView.SCROLL_STATE_DRAGGING) {//拖動(dòng)中
                    ivTop.setVisibility(View.GONE);
                }
            }
        });

RecyclerView有三個(gè)滑動(dòng)狀態(tài):

  • 當(dāng)前的recycleView不滑動(dòng)(滑動(dòng)已經(jīng)停止時(shí))
    public static final int SCROLL_STATE_IDLE = 0;
  • 當(dāng)前的recycleView被拖動(dòng)滑動(dòng)
    public static final int SCROLL_STATE_DRAGGING = 1;
  • 當(dāng)前的recycleView在滾動(dòng)到某個(gè)位置的動(dòng)畫過程,但沒有被觸摸滾動(dòng).調(diào)用 scrollToPosition(int) 應(yīng)該會(huì)觸發(fā)這個(gè)狀態(tài)
    public static final int SCROLL_STATE_SETTLING = 2;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,893評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • 我不是一個(gè)溫柔的歸人 我是行色匆匆的旅者 帶著漫漫煙塵 路過你心墳 不論碑上刻著真 只見繁蕪蔓延 看不見老綠翻舊痕...
    將離丶閱讀 433評論 1 5
  • 瓶子是我閱讀 265評論 0 0
  • 玫瑰玫瑰我愛你 9.5 有一朵極其美麗的紅玫瑰,生長在一顆特別的星球里。 她認(rèn)為自己是世界上最獨(dú)特的玫瑰花,沒有...
    春天Rosiegul閱讀 710評論 0 2

友情鏈接更多精彩內(nèi)容