我用a RecyclerView来显示一些文本数据.我在其中选择了不同的卡片.
我想改变所选卡片的外观.
public void toggleSelection(int pos)
{
RecyclerView.ViewHolder viewHolder = recView.findViewHolderForPosition(pos);
if (selectedItems.get(pos, false)) {
selectedItems.delete(pos);
viewHolder.itemView.setBackgroundColor(Color.WHITE);
}
else {
selectedItems.put(pos, true);
viewHolder.itemView.setBackgroundColor(Color.GREEN);
}
notifyItemChanged(pos);
}
Run Code Online (Sandbox Code Playgroud)
如果我像这样使用我的代码它是有效的.我的onClick事件触发此代码,我的卡背景颜色变为绿色.
所以这是我的问题:向下滚动显示其他卡片在相同的相对位置(但在列表中更下方),即使没有被选中,也会使用相同的背景颜色; 选择第一张卡并向下滚动到第八张卡是顶部可见卡的位置,显示第八张卡突出显示.