【发布时间】:2019-02-08 09:25:59
【问题描述】:
我正在尝试在单击时切换 RecyclerView 中单个项目的背景颜色。我在实现 OnClickListener 的 ViewHolder 的 onClick 函数中执行此操作。这是 onClick 的实现:
int position = getLayoutPosition();
if (selected.containsKey(position)) {
view.setBackgroundColor(context.getResources().getColor(R.color.white));
selected.remove(position);
} else {
view.setBackgroundColor(context.getResources().getColor(R.color.highlight));
selected.put(position, view);
}
当我在填充的 RecyclerView 中对此进行测试时,就会出现问题。如果有很多项目,则在开始时选择一个也会突出显示列表中进一步看不到的其他项目。其他突出显示的视图不会添加到“选定”地图中。此外,在从选定视图滚动并返回它们后,它们有时会改变颜色。为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
我认为你的职位是最终的stackoverflow.com/questions/53837296/…
-
您必须在 RecyclerView 的 POJO 中添加新参数。假设“selected=true”,然后每次触发时更新它,你的 setnotifyOnChanged kan 处理这个变化
标签: android android-recyclerview