且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

滚动时,在recyclerView中取消选中复选框

更新时间:2021-10-15 03:28:47

在onBindView上使用以下逻辑:

use logic below on onBindView:

holder.attenCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                if (holder.attenCheckBox.isChecked())
                    dataModel.setChecked(true);
                else
                    dataModel.setChecked(false);
            }
        });

        if (dataModel.getChecked())
            holder.attenCheckBox.setChecked(true);
        else
            holder.attenCheckBox.setChecked(false);
        holder.checkboxLinearLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (holder.attenCheckBox.isChecked())
                    holder.attenCheckBox.setChecked(false);
                else
                    holder.attenCheckBox.setChecked(true);


            }
        });

说明:


  • 向下或向上滚动时,回收查看会延长eveytime。

  • 您需要在数据pojo中存储标记以跟踪检查状态

  • 将该标志与 setOnCheckedChangeListener 一起使用,可以让你检查启用/禁用。确保你把旗帜放在后面听众。

  • Recycle view inflate eveytime when you scroll down or up.
  • you need to store a flag in the data pojo to keep track of check status
  • using that flag with setOnCheckedChangeListener will enable you to have you checked enable/disable .make sure you put flag after listener.