Android Adapter分頁顯示異常: 首頁資料在螢幕內全顯示,無法上滑分頁
阿新 • • 發佈:2021-12-08
前情提要:
Android 端Adapter分頁,下拉重新整理,上滑分頁,
原有流程:上滑時,滑動觸及底部,觸發Adapter的onScrolled的方法
異常情況:第一頁資料完全顯示,導致上滑時,未觸及底部,未觸發Adapter的onScrolled的方法
修復:
第一頁資料完全顯示時,上滑無法觸發Adapter的onScrolled,
判斷,如果第一頁資料在當前螢幕完全顯示,則將資料的分頁處理,放在onScrollStateChanged方法中處理
- 判斷當前Adapter的第一項item的高度(僅適用於,列表的每一項item高度一致)
- 觸發onScrollStateChanged方法時,判斷當前itemHeight * count 是否大於 當前RecyclerView的完全高度(取的是RecyclerView的父級的高度)
- 如果大於,則不做處理,此時會觸發onSrolled方法
- 如果小於,則進行分頁資料處理
-
myRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (adapter.getItemHeight() * (adapter.getItemCount() - 1) < parentLayout.getHeight() && newState == SCROLL_STATE_IDLE) {