我有RecyclerView.Adapter<RecyclerView.ViewHolder>
分页按钮(加载更多)
在像页脚这样的RecyclerView中加载更多按钮。每个请求获得20行,如果我得到&lt; 20项,我需要禁用此按钮:
@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());
}
如果我的opcTransactions
有一个或多个项isVisibleLoadButton
设置为false,我的加载更多按钮设置为禁用。但是,如果我得到emty list opcTransactions
size = 0 - 加载更多按钮没有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;
}
答案 0 :(得分:-1)
问题出在这一行。
final int positionStart = transactionItems.size()+1;
positionStart应指向列表的最后一项。索引从 ZERO 开始。用它作为。
final int positionStart = transactionItems.size();