Android RecyclerView更改错误的值';s在上/下滚动
之前,我使用了listview和listview的自定义适配器。 除了我上下滚动数据更改时,所有操作都正常(例如,我有一个if语句,用于更改listview项的bg颜色。当我上下滚动颜色更改错误时,在第一次加载和滚动时,所有操作都正常!) 我解决了listview的这个问题,方法是在适配器的getView方法中将视图始终重置为nullAndroid RecyclerView更改错误的值';s在上/下滚动,android,android-recyclerview,Android,Android Recyclerview,之前,我使用了listview和listview的自定义适配器。 除了我上下滚动数据更改时,所有操作都正常(例如,我有一个if语句,用于更改listview项的bg颜色。当我上下滚动颜色更改错误时,在第一次加载和滚动时,所有操作都正常!) 我解决了listview的这个问题,方法是在适配器的getView方法中将视图始终重置为null v = null; LayoutInflater inflater = (LayoutInflater) getContext().getSystemServic
v = null;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.friendlv, null);
现在我切换到RecyclerView,我也遇到了同样的问题,但我不知道如何解决这个问题
谢谢 设置属性后,该属性对于该项是持久的。当您滚动时,该视图将从屏幕上消失,相同的项目布局将再次用于下一个项目。因此,您需要写入else条件来重置旧属性 因此,您应该将
else
语句添加到所有if
语句中,如下例所示
if (condition) {
change bg color to new color
}
else {
change bg color to old color
}
如果未设置
onBindViewHolder
的正确动态属性,则可能会出现这种情况。例如,您在一种情况下更改了背景,但必须在else
状态下重新更改背景。请发布您的完整适配器类。这解决了问题,但我不明白为什么。。。我可以请你解释一下吗!对不起,它起作用了!我已经编辑了上面的评论。但是我不明白为什么我现在工作。如果我只在条件为xIt时更改颜色,因为一旦设置了该项的属性,它将持续显示该项,一旦滚动且该视图从屏幕上消失,同一行项布局将再次用于下一项,因此您需要为下一个useWorks写入else条件?请阅读其他帖子@Gaurav我在这里可能有类似的问题:。我添加了and ELSE语句,但仍然得到一个错误。如果您能提供有关如何修复的想法,我将不胜感激。