0
我有一个RecyclerView
物品,所有物品都有checkbox
。重点是你只能设置一个checkbox
为checked
(喜欢的东西)。一切正常,直到有足够的项目需要滚动RecyclerView
。但是,当有足够的物品滚动时,该物品的一些名称将消失,除了一个物品外,其他任何物品都不会工作,并且全部卡住。另外,我得到下面的异常:带复选框的Recyclerview物品变形
"Cannot call this method while RecyclerView is computing a layout or scrolling"
这是我在做什么:
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();
如果我删除了这一行是不是一切正常,但可以选择多个checkboxes
这不是主意。
有人做过这样,所以我现在还不能执行单选按钮。但是我怎么可以在我的情况下使用你的例子? – Esteban
我编辑答案...希望它会工作/帮助 –
不,它不工作。最后3个底部项目开始闪烁,没有任何可点击的内容。我尝试使用'notifyItemRangeChanged(0,mPeemList.size());'它可以工作,但有时第一个项目有问题... – Esteban