RecyclerView滑動到底部監聽

RecyclerView滑動監聽

最近在用RecyclerView的時候碰到了一種有點坑的情況,其實也是由於自己水平不高的造成的…
功能描述:
本項目中使用RecyclerView列表增加了上拉加載的功能,在加載過程中會在列表底部添加一個”正在加載中”的Item作爲加載提示.本項目採用滑動監聽+標誌位 方式完成上拉加載功能.

  • 滑動監聽當中做的工作是監聽當前的滑動狀態.SCROLL_STATE_IDLE 表示爲停止滾動狀態
    這裏寫圖片描述

  • Adapter當中的footShow標誌爲表示是否顯示加載提示Item(當前提到的RecyclerView是放置於Fragment當中,並用Adapter進行處理)
    這裏寫圖片描述

功能實現:
在滑動監聽addOnScrollListener中,當滑動列表狀態newState 爲SCROLL_STATE_IDLE時,如果標誌位footShow爲true,則表示處於列表底部,需要加載新一頁數據.
這裏寫圖片描述
問題:
本上拉加載方案雖然能夠達到目的,但是也帶來了另一個問題.即在滑動監聽當中只監聽到列表的滑動狀態,而不是明確的監聽滑動到底部事件.

在使用swipeRefreshLayout 達成下拉刷新的功能,便會產生衝突.因爲下拉刷新的下拉動作同樣會觸發到列表的滑動監聽.
解決方案:
改變滑動到底部的判斷方式,通過manager.findLastVisibleItemPosition()獲取當前窗口上顯示的最後一個Item所在位置來判斷是否滑動到底部.
這裏寫圖片描述

————–問題排除—————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章