[英]Paging library with retrofit
我正在嘗試實現一個無限滾動視圖(直到存儲庫返回 []),我一直在閱讀和查看示例,但它們適用於Room
數據庫,雖然我也想用Room
來做,但首先我會喜歡使用Retrofit
進行分頁,例如,我的目標是要一組 10 個項目,但我沒有成功,我讀過我必須使用PagedList
但它對我來說很新,你們中的任何人都可以嗎給我一個例子或一個如何做的偽例子? 我對端點的調用是這樣的:
https://api.example.com/pews/ {string}/books?per_page=10&page=1
問題是我的響應沒有在 json 中返回與頁面或最大頁面相關的內容,我只需要嘗試直到它返回空列表,而且我習慣使用 MVP 而不是 MVVM ,但也許使用 MVVM 更容易做到這一點,我也遵循干凈的架構 UI - 演示 - 域 - 數據。
我首先將 go 用於 MVP,因為我可以直接使用 go 但如果使用 MVVP 更容易,我只需將 Presenter 更改為 ViewModel 並進行一些更改即可。
在我的應用程序上分頁的目的是有一個無限的滾動視圖,每次我到達最后它都會加載 10 個項目。
您需要使用以下變量實現OnScrollListener
:
visible Threshold
- 在加載更多之前,當前滾動 position 下方的最小項目數量。currentPage
– 您已加載的當前數據頁previousTotal
– 上次加載后數據集中的項目總數loading
– 如果我們仍在等待最后一組數據加載,則為真。重寫 onScroll 方法以實現預期的行為:
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if (loading) {
if (totalItemCount > previousTotal) {
loading = false;
previousTotal = totalItemCount;
currentPage++;
}
}
if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) {
// make your Retrofit call here using `currentPage + 1`
loading = true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.