2017-12-22 4 views
-2

を更新しないnotifyItemRangeInserted。各要求は20行を取得し、私は< 20アイテムを取得する場合、私は、このボタンを無効にする必要があります:私は無効に設定され1つの以上の項目はfalseに設定isVisibleLoadButtonと私の負荷よりボタンでopcTransactionsを取得した場合は、私はフッターのようなRecyclerViewで改ページボタンで​​(以上の負荷)</p> <p>ロード[詳細]ボタンを持って商品を

@Override 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
     if (holder instanceof ViewHolder) { 
      ... 
     } else if (holder instanceof FooterViewHolder) { 
      ... 
      viewHolder.loadMore.setEnabled(isVisibleLoadButton); 
     } 
    } 

public void addData(List<TransactionItem> opcTransactions) { 
     final int positionStart = transactionItems.size()+1; 
     isVisibleLoadButton = opcTransactions.size() >= 20; 
     transactionItems.addAll(opcTransactions); 
     notifyItemRangeInserted(positionStart, opcTransactions.size()); 
    } 

を。しかし、私がemtyリストを取得した場合opcTransactionsサイズ= 0 - Moreボタンを押しても表示されません。

@Override 
    public int getItemCount() { 
     if (transactionItems == null) { 
      return 0; 
     } 

     if (transactionItems.size() == 0) { 
      //Return 1 here to show nothing 
      return 1; 
     } 

     // Add extra view to show the footer view 
     return transactionItems.size() + 1; 
    } 

答えて

-1

この行に問題があります。

final int positionStart = transactionItems.size()+1; 

positionStartはリストの最後の項目を指す必要があります。インデックス作成はのZEROから開始されます。それをとして使用してください。

final int positionStart = transactionItems.size(); 
+1

ではありません。私はこれを特別に使用します。 +1を追加した場合 - 最初の20個のアイテムを読み込んだときにリストがbuttom(https://stackoverflow.com/a/30455749/4781349)にスクロールされず、+1ボタンも無効にしないと使用しない場合 – ip696

+0

+ 1?あなたが最終的に 'notifyItemRangeInserted'を' notifyItemChanged'と呼んでいないときです。 – ADM

+0

私はあなたを理解していません。なぜ私が+1を使うのかという答えとのリンクを書いた。 +1を使用しなくてもまだ動作しないことを明らかにしました – ip696

関連する問題