簡體   English   中英

帶有 retrofit 的分頁庫

[英]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 &amp;&amp; (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) {

            // make your Retrofit call here using `currentPage + 1`
            loading = true;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM