2016-07-26 5 views
1

フッターをRecyclerViewで表示しようとしましたが、フッターが時々速く表示されることがあります。すべての操作のための私のコードでRecyclerViewフッターが表示されていません

public class CustomRecyclerViewScrollListener extends RecyclerView.OnScrollListener { 
    int visibleCount = 0; 
    int totalItemCount = 0; 
    int pastVisibleItems = 0; 
    int lastVisibleItem=0; 

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

     visibleCount = llm.getChildCount(); 
     totalItemCount = llm.getItemCount(); 
     pastVisibleItems = llm.findFirstVisibleItemPosition(); 
     lastVisibleItem=llm.findLastVisibleItemPosition(); 
     if (!isLoading && !dataFinished && list.size() % 10 == 0) { 
      if ((visibleCount + pastVisibleItems) >= totalItemCount) { 
        isLoading = true; 
        loadMore(); 
        adapter.showViewHolderFooter();     

       } 
      } 
     } else {    
       adapter.hideViewHolderFooter();    

     } 
    } 
+0

を開始する前に、falseにisLoadingを設定し、あなたのコード内でloading = true;を設定します。 –

答えて

1
private int firstVisibleItem, visibleItemCount,totalItemCount,pastVisiblesItems; 
private boolean loading = true; 

    reyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
       @Override 
       public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
        if (dy > 0) //check for scroll down 
        { 
         visibleItemCount = mLayoutManager.getChildCount(); 
         totalItemCount = mLayoutManager.getItemCount(); 
         pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition(); 

         if (loading) { 
          if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) { 
           loading = false; 
           expandapleInt++; 

           //Your operation 
         } 
         } 
        } 
       } 
      }); 

すべての負荷はあなたがloadMore` `前にフッターを表示して起動する場合があります

関連する問題