Android RecyclerView: notifyDataSetChanged () IllegalStateException

Estou tentando atualizar os itens de uma revisão de reciclagem usando notifyDataSetChanged ().

Este é o meu método onBindViewHolder () no adaptador de reciclagem.

@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {

     //checkbox view listener
    viewHolder.getCheckbox().setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            //update list items
            notifyDataSetChanged();
        }
    });
}

O que eu quero fazer é atualizar os itens da lista, depois de marcar uma caixa de seleção. Eu recebo uma exceção ilegal:"Cannot call this method while RecyclerView is computing a layout or scrolling"

java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling
    at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:1462)
    at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onChanged(RecyclerView.java:2982)
    at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyChanged(RecyclerView.java:7493)
    at android.support.v7.widget.RecyclerView$Adapter.notifyDataSetChanged(RecyclerView.java:4338)
    at com.app.myapp.screens.RecycleAdapter.onRowSelect(RecycleAdapter.java:111)

Eu também usei notifyItemChanged (), mesma exceção. Alguma maneira secreta de atualizar para notificar o adaptador de que algo mudou?

questionAnswers(20)

yourAnswerToTheQuestion