使用 notifyItemInserted 时,onBindViewHolder 保持插入项目的位置

When using notifyItemInserted the onBindViewHolder keeps the position where the item was inserted

当我添加新项目时,使用以下代码行:-

proAdapter.notifyItemInserted(0);

onBindViewHolder保持位置0。

使用 onClick 侦听器时会出现问题,因为它始终位于位置 0

因此,如果我单击并尝试删除第 5 个项目,位置 0 的项目将始终被删除。

有没有办法重置 onBindViewHolder 的位置?

当我使用以下时,没有问题:-

proAdapter.notifyDataSetChanged();

这是我在 Java class

中添加新项目时的代码
        setPro.addToSpinnerItems(0, newItem);

        //proAdapter.notifyDataSetChanged();
        proAdapter.notifyItemInserted(0);
        smoothScroller.setTargetPosition(0);
        layoutManager.startSmoothScroll(smoothScroller);

这是我的 onclicklistener 代码

        holder.myImage.setOnClickListener(v -> {
        spinnerItems.remove(position);
        Log.d("myTag", "Delete item: " + position);
        notifyDataSetChanged(); //Here I could also use notifyItemRemoved
    });

使用 getAdapterPosition() 获取 viewHolder 的位置而不是将其保存在变量中,将您的代码更改为这样的东西

    holder.myImage.setOnClickListener(v -> {
    int position = holder.getAdapterPosition();
    spinnerItems.remove(position);
    Log.d("myTag", "Delete item: " + position);
    notifyItemRemoved(position); 
});