OnClick事件必须改为这样:
@Override
public void onClick(View view) {
if (selectedPos == getAdapterPosition()) {
selectedPos = RecyclerView.NO_POSITION;
notifyDataSetChanged();
return;
}
selectedPos = getAdapterPosition();
notifyDataSetChanged();
}
它的运作就像魔法一样!感谢Quick learner的答案给了我启示。
notifyItemChanged(selectedPos)
被使用了两次(一次是用之前的位置,然后是当前的位置)。然而,当选择相同的项目时,onBindViewHolder
只会被调用一次。您建议如何使用isSelected()
? - W. Stalin R.