我想从recyclerview中删除特定项目(FIRST ITEM!)。
这不是问题:
//items variable is my Arraylist
items.remove(0);
当我看到这个项目时,它正常工作。但是当我滚动时,recyclerview会自动更新,如果我滚动则尝试删除项目而不是第一项(0)。什么是代码,在任何情况下删除第一项?
谢谢!
答案 0 :(得分:0)
private List<Item> mItems;
private MyAdapter mAdapter;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.cell, parent, false));
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// ... On Bind
}
@Override
public int getItemCount() {
return mItems.size();
}
// View holder class to save view elements
class ViewHolder extends RecyclerView.ViewHolder {
// ...
public ViewHolder(View itemView) {
super(itemView);
// ...
}
}
}
private void removeFirstItem() {
mItems.remove(0);
mAdapter.notifyDataSetChanged();
}
或使用notifyItemRemoved(position)
删除动画。
答案 1 :(得分:0)
我想你可以阅读这个问题的答案Get visible items in RecyclerView。
此外,在创建活动之前无法调用notifyItemRemoved
和其他通知方法,否则您将收到错误“当RecyclerView正在计算布局或滚动时无法调用此方法”