解决RecyclerView代码复用问题

来源:互联网 发布:中美进出口数据 编辑:程序博客网 时间:2024/06/06 05:34

方法一. 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添加图片,也会造成复用,所以,需要添加默认的图片,不管是否已经添加了图片.