从recyclerview中删除项目后,默认情况下,其他项目会向上移动以填充已删除元素的空间。我该如何阻止这种运动?
我想在移除项目后在视图中留下空隙,而不是其他项目向上移动以替换它。
答案 0 :(得分:0)
如何不删除项目,但使其itemView不可见?您可以向对象添加两种状态,用于绑定ViewHolder,在onBindViewHolder方法中检查此状态,并使用您需要的任何动画设置itemView的可见性。像这样:
public class RecyclerViewItem {
public boolean isVisible;
}
在您的活动/片段中设置所需状态:
private void removeItem(int position){
adapter.getDataSet().get(position).isVisible = false;
adapter.notifyItemChanged(position);
}
在您的RecyclerView.Adapter中:
private ArrayList<RecyclerViewItem> mDataSet;
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
RecyclerViewItem item = mDataSet.get(position);
holder.itemView.setVisibility(item.isVisible? View.VISIBLE : View.INVISIBLE);
}