Scroll 为什么RecyclerView不起作用?
我曾多次尝试在RecyclerView上设置背景色。但我尝试滚动,然后背景被删除。所以我可以在RecyclerView中修复backgroundColor。请帮帮我 或者我想换个颜色 我的问题视频Scroll 为什么RecyclerView不起作用?,scroll,android-recyclerview,Scroll,Android Recyclerview,我曾多次尝试在RecyclerView上设置背景色。但我尝试滚动,然后背景被删除。所以我可以在RecyclerView中修复backgroundColor。请帮帮我 或者我想换个颜色 我的问题视频 我不知道原因…如果您以编程方式设置背景色。每次都必须设置正常颜色和选定颜色 RecyclerViews正在重用它们的视图。当项目离开屏幕时,它将被重新使用,以提高“回收器”视图的性能 在这种情况下,当一个人以编程方式设置背景色,项目离开屏幕时。它将在新项目中重复使用,并且背景颜色仍与项目离开屏幕时相
我不知道原因…如果您以编程方式设置背景色。每次都必须设置正常颜色和选定颜色 RecyclerViews正在重用它们的视图。当项目离开屏幕时,它将被重新使用,以提高“回收器”视图的性能
在这种情况下,当一个人以编程方式设置背景色,项目离开屏幕时。它将在新项目中重复使用,并且背景颜色仍与项目离开屏幕时相同。您需要首先了解RecyclerView的工作原理 当您在单元格中滚动时,屏幕外的视图将被回收,随后它们将被重新使用以显示传入的视图。因此命名为RecyclerView。这样,视图将始终被回收和重用,从而节省内存 您需要做的是这样的事情:
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//mList and mSelectedObjects are array lists
View yourView = holder.itemView.findViewById(R.id.your_view);
Object object = mList.get(position);
yourView.setTag(object);
yourView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Object object = (Object) v.getTag();
if (mSelectedObjects.contains(object)) {
mSelectedObjects.remove(object);
v.setBackground(null);
} else {
mSelectedObjects.add(object);
v.setBackgroundColor(Color.GRAY);
}
}
});
}
谢谢Jagoan Neon。确切地说,我不知道如何修改我的代码。无论如何,我真的很感谢你。