나는 RecyclerView
에 항목이 있으며 그 중 모두는 checkbox
입니다. 요점은 checkbox
을 checked
(좋아하는 것)으로 설정할 수 있다는 것입니다. RecyclerView
스크롤해야하는 항목이 충분할 때까지 모든 것이 올바르게 작동합니다. 그러나 스크롤 할 항목이 충분하면 항목 이름 중 일부가 사라지고 checkboxes
중 하나도 작동하지 않으며 모두 멈추었습니다.확인란이있는 Recyclerview 항목이 왜곡됩니다.
holder.getBinder().cbIsFavourite.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (mListener == null) {
return;
}
if (isChecked) {
for (Peem peemTmp : mPeemList) {
if (peemTmp.isFavourite()) {
peemTmp.setFavourite(false);
}
}
peem.setFavourite(true);
PeemAdapter.this.notifyDataSetChanged();
} else {
peem.setFavourite(false);
removeFavouriteShops(peem);
}
mListener.onFavouriteChecked(peem);
}
});
PeemAdapter.this.notifyDataSetChanged();
나는, 모든 괜찮 그 라인을 제거하는 경우 만 :
"Cannot call this method while RecyclerView is computing a layout or scrolling"
이것은 내가 뭐하는 거지 있습니다 : 또한, 나는 다음과 같은 예외가 아이디어가 아닌 복수 checkboxes
을 선택할 수 있습니다.
. 그러나 내 경우에는 어떻게 당신의 모범을 사용할 수 있습니까? – Esteban
답변을 편집했는데 ... 도움이 되었으면 좋겠다/도움 –
아니, 작동하지 않습니다. 마지막 3 개의 하단 항목이 깜박이기 시작하고 아무 것도 클릭 할 수 없습니다. 나는'notifyItemRangeChanged (0, mPeemList.size()); '를 사용하여 시도했으나 작동하지만 때때로 첫 번째 항목에 문제가 있습니다 ... – Esteban