我正在使用GridLayoutManager,其recyclerview的跨度计数为2。我尝试使用。
itemView.setVisibility(View.GONE);
itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0));
,但它在recyclerview内留有空间。那么有没有办法隐藏和删除recyclerview内部的空间?
编辑 (附加代码) 我正在使用FirebaseRecyclerAdapter来显示所有数据。
private ArrayList<String> mWorldGroupKeys;
@Override
protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull Groups model) {
String groupKeys = getRef(position).getKey();
if (!mWorldGroupKeys.contains(groupKeys)) {
holder.layoutHide(position);
return;
}
holder.bind(model);
}
class ViewHolder extends RecyclerView.ViewHolder {
void layoutHide(int pos) {
notifyItemRemoved(pos);
//Gave me an error of:
//IllegalStateException: Cannot call this method while
//RecyclerView is computing a layout or scrolling
//android.support.v7.widget.RecyclerView
}
}
答案 0 :(得分:0)
从适配器的列表中删除项目后,可以使用notifyItemRemoved();
或notifyDataSetChanged();
。这两个功能将刷新列表。