android 列表上拉載入更多 下拉重新整理

2021-09-10 22:15:08 字數 2060 閱讀 3801

載入更多:通過繼承列表view的onscrolllistener 監聽,重寫onscroll,在這裡實現載入更多的邏輯;是否觸發載入更多的邏輯其判斷條件為列表是否滑動到最底部就可以了,最底部就觸發載入更多,否則就不觸發。

以recyclerview 為例:

核心**

public abstract class recycleloadmorescorllerlistener extends recyclerview.onscrolllistener 

@override

public void onscrolled(@nonnull recyclerview recyclerview, int dx, int dy) }}

/*** 是否滑動到最底部

** !isloading, 不在載入過程中

* lastvisibleitemposition == totalitemcount - 1, 當前可見的最後乙個item是列表的最後乙個

** @return

*/private boolean isslidetobottom()

recyclerview.layoutmanager layoutmanager = mrecyclerview.getlayoutmanager();

if (layoutmanager instanceof linearlayoutmanager)

return false;

}@override

public void onscrollstatechanged(recyclerview recyclerview, int newstate)

//抽象方法,用來傳遞載入更多事件

public abstract void onloadmore(int currentpage);

public void setcanloadmore(boolean load)

public void setloading(boolean load)

}

寫完這個監聽後,在adapter 或者是介面中使用都可以,比如說在adapter中去使用(這種方式針對recycleview 可以的,因為在建立adapter時,這些方法一定會走到),

@override

public void onattachedtorecyclerview(@nonnull recyclerview recyclerview)

};recyclerview.addonscrolllistener(mrecycleloadmorescorllerlistener);

//初始化的時候如果未填滿一頁,那麼肯定就沒有更多資料了

if (mstrings.size() < per_page) else

}@override

public void ondetachedfromrecyclerview(@nonnull recyclerview recyclerview)

mrecycleloadmorescorllerlistener = null;}/*

* 資料載入完畢時執行setcanloadmore(),此時isloading都置為false

* */

public void setcanloadmore(boolean iscanloadmore)

//這裡是通過介面把其拓展出去

public inte***ce onloadmorelistener

private onloadmorelistener monloadmorelistener;

public void setonloadmorelistener(onloadmorelistener listener)

然後,adpater.setonloadmorelistener(new adapter.onloadmorelistener(){

..... 實現相關邏輯

或者在acitivity中,recylceview繫結onscrolllistener監聽,這樣也是可以的。

參考文章:  (大致的思路可以參考一下);

還要周文凱的系列文章 

上拉載入更多

在ios開中中,由於螢幕尺寸限制,如果需要顯示的資料很多,需要用到分頁載入。資料來源是個array nsmutablearray items viewcontroller的這個方法返回資料條數 1是為了顯示 載入更多 的那個cell nsinteger tableview uitableview t...

js上拉載入更多

方法一 jq var page 1,分頁碼 off on false,分頁開關 滾動載入方法 1 中用的 timers null 定時器 滾動載入方法 2 中用的 載入資料 var loadingdatafn function off on true 重要 這是使用了 時 用到的 如果用 滾動載入方...

js上拉載入更多

jq方法 方法一 var page 1,分頁碼 off on false,分頁開關 滾動載入方法 1 中用的 timers null 定時器 滾動載入方法 2 中用的 載入資料 var loadingdatafn function off on true 重要 這是使用了 時 用到的 如果用 滾動載...