RecyclerView在向上/向下滚动时更改错误的值
问题描述:
以前我使用了一个listview和一个自定义适配器作为listview。 所有工作正常,除了当我滚动上下数据改变(例如我有一个if语句我适配器来改变列表视图项目的颜色。当我滚动上下颜色改变了错误,在第一个加载和滚动一切都很好!)RecyclerView在向上/向下滚动时更改错误的值
我解决了这个问题的列表视图通过重置视图始终在我的适配器中的getView方法为null。
v = null;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.friendlv, null);
现在我切换到RecyclerView有我同样的问题,但我不知道解决这个问题..
的感谢!
答
设置属性后,该属性将保留该项目。滚动时,该视图从屏幕上消失,并且下一个项目再次使用相同的项目布局。所以你需要写else条件来重置旧的属性。
所以,在下面的例子中
if (condition) {
change bg color to new color
}
else {
change bg color to old color
}
它可能是,如果你没有设置'onBindViewHolder'的正确的动态属性说明你应该添加
else
语句将所有if
语句。例如,您在一种情况下更改了背景,但您必须在“else”状态中更改。 Plz发布完整的适配器类。 –