I have RecyclerView.Adapter<RecyclerView.ViewHolder>
with pagination button(Load More)
Load More button in RecyclerView like Footer. Each request get 20 rows and if I get <20 items I need disable this button:
@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());
}
If I get opcTransactions
with 1 or more items isVisibleLoadButton
set false and my load More button set disable. But If I get emty list opcTransactions
size = 0 - load More button not diasbled.
@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;
}