Java 删除项目并删除';不要在GridLayoutManager回收视图中留下空间

Java 删除项目并删除';不要在GridLayoutManager回收视图中留下空间,java,android,android-recyclerview,gridlayoutmanager,Java,Android,Android Recyclerview,Gridlayoutmanager,我正在为我的recyclerview使用跨度计数为2的GridLayoutManager。我试着用它 itemView.setVisibility(View.GONE); itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0)); 但它在回收视图中留下了一个空间。那么,有没有办法隐藏和删除recyclerview中的空间 编辑 (附加代码) 我正在使用FirebaseRecyclerAdapter显示所有数据 private

我正在为我的recyclerview使用跨度计数为2的GridLayoutManager。我试着用它

itemView.setVisibility(View.GONE);
itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0)); 
但它在回收视图中留下了一个空间。那么,有没有办法隐藏和删除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
       }
}
private ArrayList mWorldGroupKeys;
@凌驾
受保护的无效onBindViewHolder(@NonNull ViewHolder,int位置,@NonNull组模型){
字符串groupKeys=getRef(位置).getKey();
如果(!mWorldGroupKeys.contains(groupKeys)){
持票人:下线(位置);
回来
}
绑定(模型);
}
类ViewHolder扩展了RecyclerView.ViewHolder{
无效布局边界(内部位置){
已删除的项目(pos);
//给了我一个错误:
//IllegalStateException:在运行时无法调用此方法
//RecyclerView正在计算布局或滚动
//android.support.v7.widget.RecyclerView
}
}

您可以使用
notifyItemRemoved()
notifyDataSetChanged()从适配器上的列表中删除该项后。这两个函数将刷新列表

notifyItemRemoved()
。我试过了,但它给了我一个错误。在您的问题中出现了错误。您正在尝试隐藏该项目。您可以做的是从列表中删除该项目,然后
notifyItemRemoved()例如:
列表。删除(位置)
如果(!mWorldGroupKeys.contains(groupKeys)){mWorldGroupKeys.remove(position);notifyItemRemoved(position)return;}
请尝试此操作