之前我使用listview和listview的自定义适配器。 所有工作都很好,除非我向上和向下滚动数据更改(例如我的if语句我适配器更改listview项目的bg颜色。当我向上和向下滚动颜色改变错误,在第一次加载滚动一切都很好!)
我通过在适配器的getView方法中将视图重置为null来解决listview的这个问题。
v = null;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.friendlv, null);
现在我切换到RecyclerView,我也有同样的问题,但我不知道解决这个问题..
谢谢!
答案 0 :(得分:17)
设置属性后,该项将保持不变。滚动时,该视图将从屏幕上消失,并且相同的项目布局将再次用于下一个项目。因此,您需要编写else条件来重置旧属性。
因此,您应该将else
语句添加到所有if
语句中,如以下示例所示
if (condition) {
change bg color to new color
}
else {
change bg color to old color
}