我尝试使用以下方法删除一项:
if (paymentType.getPaymentId()==2002) {
recyclerAdapter.deleteItem(holder.getAdapterPosition());
}
关于我的片段活动,
这是我的适配器上的方法(一个适配器可用于许多RecyclerView)
public void deleteItem(int position){
data.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, data.size());
notifyDataSetChanged();
}
但是我遇到了这样的错误:
在RecyclerView计算布局或滚动时无法调用此方法
谢谢。
答案 0 :(得分:0)
这是因为您多次调用notify方法。您只需要通知RecyclerView Adapter中某项已被删除。因此,仅在您的方法中调用notifyItemRemoved()
。像这样:
public void deleteItem(int position) {
data.remove(position);
notifyItemRemoved(position);
}
答案 1 :(得分:0)
您需要删除该物品。这是最佳做法
if (paymentType.getPaymentId()==2002) {
rowRootLayout.setVisibility(View.GONE);
}else{
rowRootLayout.setVisibility(View.VISIBLE);
}