Da Nang(越南峴港)/ HuangNO1
241 words
1 minute
Android Java - 簡易今日頭條 - Load More 加載更多新聞內容

前言
上一篇我們說到了下拉刷新的實現,這篇我接著講如何實現上拉加載更多。
Display
項目倉庫
具體實現
這裡需要使用 RecyclerView
的監聽滾動方法,當無法在往下滾動的時候,就調用加載更多的方法。
以下是 RecyclerView
設置滾動監聽的參考案例:
這裡使用了 addOnScrollListener
方法做滾動監聽,接著在 onScrolled
方法中做處理,!recyclerView.canScrollVertically(1)
代表 recyclerView
已經無法繼續往下滾了。
// cardListmCardListRecyclerView = view.findViewById(R.id.recycler_view_card_list);mCardListRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(@NonNull @NotNull RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); }
@Override public void onScrolled(@NonNull @NotNull RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); if (!recyclerView.canScrollVertically(1)) { // 1 for down loadMoreNews(); } }});
這裡比較需要注意的地方是如果需要在加載更多後的 mCardListAdapter
要使用 notifyDataSetChanged()
方法更新頁面的 Item 渲染。
mCardListAdapter.setDataModelList(tempCardDataModelList);Log.v("after load more", "card list size: " + mCardListAdapter.getItemCount());mIsLoadMore = false;mCardListAdapter.notifyDataSetChanged();
Reference
Android Java - 簡易今日頭條 - Load More 加載更多新聞內容
https://huangno1.github.io/posts/android_java_recyclerview_load_more/