如何更改回收站视图中的特定项目?

how to change specific items in recycler view?

我想从回收站视图中的特定项目中删除 textview。我写了下面的代码来做到这一点

@Override
    public void onBindViewHolder(@NonNull final Myholder holder, final int possion) {
        final String n = names.get(possion);
        if(possion==3){
        holder.textView.setVisibility(View.GONE);}}

但这会更改所有项目,我只想让第 3 个项目视图消失。 这是我的视图持有人

public static class Myholder extends RecyclerView.ViewHolder {
        TextView textView;
        public Myholder(@NonNull View itemView) {
            super(itemView);
        textView = itemView.findViewById(R.id.textfolder);
        }
    }

我该怎么办?

永远记住 RecyclerView 回收 视图持有者。也就是说,相同的 ViewHolder 实例将被重新用于不同的视图。这意味着在没有对应的 else.

的情况下使用 if 语句修改视图几乎总是一个坏主意

所以,试试这个:

if (possion == 3) {
    holder.textView.setVisibility(View.GONE);
} else {
    holder.textView.setVisibility(View.VISIBLE);
}

另请注意,仅检查 position 参数不一定是个好主意。如果您使用 notifyItemInserted()notifyItemRemoved(),这可能会导致问题。

最好在该位置对项目进行一些设置,以指示不应显示其文本。