方法一. holder.setIsRecyclable(false);//取消复用,但会造成卡顿
方法二.在Adapter下(就是添加一个标记集合,当是否点击,如果是就添加到这个集合中,否就移除,再判断一次当前是否在这个集合中,是就显示点击的状态,否就显示未点击状态)
privateList<Integer> Livelist=new ArrayList<>();
onBindViewHolder下
playview.LiveButton().setTag(position);
playview.LiveButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (the_first){
if (!Livelist.contains(playview.LiveButton().getTag())){
playview.LiveButton().setButtonDrawable(R.drawable.ic_live_on);
}
}
}
});
if (Livelist.contains(position)){
playview.LiveButton().setButtonDrawable(R.drawable.ic_live_on);
}
else {
playview.LiveButton().setButtonDrawable(R.drawable.ic_live);
}
方法三:还有一种情况是这样的,当你没有对该控件赋值,例如没有对该Imageview添加图片,也会造成复用,所以,需要添加默认的图片,不管是否已经添加了图片.