2017-05-24 24 views
-2

在我的應用程序中,我希望顯示來自服務器的數據,並從服務器向我發送所有數據。在Android我應該得到10個數據並顯示它,當滾動和顯示10個數據發送請求到服務器並獲得其他10個數據!
對於服務器請求使用Retrofit2如何在Android中的recyclerView中使用loadMore

我該如何在android中使用lazy loader?

+0

看看我的項目在github,https://github.com/shayanpourvatan/PaginationHandler –

回答

0

檢查您的API是否支持Limit和Offset參數,如果支持,則請求 ,然後請求API爲您提供10個初始爲偏移0的元素,然後在到達列表末尾時再次調用您的服務,偏移量=(Number of列表中的項)

0

您應該將頁面變量傳遞給Web服務。 這裏llManager是LinearLayoutManager附加到您的回收者視圖和總記錄是可用數據的總數。

當您到達回收站視圖的最後一個對象時,這將調用您的Web服務,並且您在回收站視圖中的當前數據少於總可用數據並增加服務的頁面計數值以獲取新頁面數據。

還有一件事情還維護一個標誌isCalling來檢查服務是否已經在運行以獲取數據。

recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() { 
      @Override 
      public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
       super.onScrollStateChanged(recyclerView, newState); 
      } 

      @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       super.onScrolled(recyclerView, dx, dy); 

       int visibleThreshold = 1; 
       int totalItemCount = llManager.getItemCount(); 
       int lastVisibleItem = llManager.findLastVisibleItemPosition(); 
       if (totalItemCount <= (lastVisibleItem + visibleThreshold)) { 
        if (totalRecords > totalItemCount && !isCalling) { 
         page = page + 1; 

         callwebservice(); 
        } 

       } 

      } 
     }); 
相關問題