2016-12-26 19 views
-1

我有RecycleView顯示項目的數量與admob它工作良好,但我想實現分頁功能,我試圖實現,但我沒有得到成功,我的代碼就像下面Admob在RecycleView與分頁

Home.Java

recycleFeedList.addOnScrollListener(new RecyclerView.OnScrollListener() { 
      @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       if (dy > 0) //check for scroll down 
       { 
        visibleItemCount = mLinearLayoutManager.getChildCount(); 
        totalItemCount = mLinearLayoutManager.getItemCount(); 
        pastVisiblesItems = mLinearLayoutManager.findFirstVisibleItemPosition(); 
        if (loading) { 
         LogUtils.LOGD("LastPage:", lastPage + ""); 
         LogUtils.LOGD("visibleItemCount:", visibleItemCount + ""); 
         LogUtils.LOGD("pastVisiblesItems:", pastVisiblesItems + ""); 
         LogUtils.LOGD("totalItemCount:", totalItemCount + ""); 
         if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) { 
          loading = false; 
          getFeedList(2, "", 1, lastPage); 
         } 
        } 
       } 
      } 
     }); 

和我的適配器是象下面這樣:

@Override 
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { 
      RecyclerViewFeedItem recyclerViewFeedItem = (RecyclerViewFeedItem) viewHolder.itemView; 

      recyclerViewFeedItem.bind(mContext, items, position, this, REQUEST_CODE); 

     } 

回答

0

你可以這樣說:

int currentPage = 1; 

class OnScrollListener extends RecyclerView.OnScrollListener 
{ 
    int firstVisibleItem; 
    int visibleItemCount; 
    int totalItemCount; 
    private int previousTotal = 0; 
    private boolean loading = true; 
    private int visibleThreshold = 5; 

    @Override 
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) 
    { 
     if (dy > 0) 
     { 
      visibleItemCount = layoutManager.getChildCount(); 
      totalItemCount = layoutManager.getItemCount(); 
      firstVisibleItem = layoutManager.findFirstVisibleItemPosition(); 

      if (loading) 
      { 
       if (totalItemCount > previousTotal) 
       { 
        loading = false; 
        previousTotal = totalItemCount; 
       } 
      } 

      if (!loading && 
        (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) 
      { 
       currentPage++; 
       //here you load next page, e.g.: load(currentPage); 
       footer.setVisibility(View.VISIBLE); 
       loading = true; 
      } 
     } 
    } 
} 

用法:

recyclerView.addOnScrollListener(new OnScrollListener()); 
+0

它不是爲我工作 – 2017-02-01 12:29:24