我想为Firebase Recycler视图中添加的项目设置不同的颜色。我正在使用卡片视图来显示数据。我想要的是:假设我已经在列表中有一些数据,并且它们将具有白色背景。现在假设列表中添加了一些新值。我希望新添加的项目具有与已存在的项目不同的背景色调(说绿色)。我从Firebase获取数据。现在,在我查看卡片详细信息或第一次查看新数据后,这些新卡片的颜色现在应该是白色的,因为现在它们已经很旧了。如果我的卡片保留其颜色直到读取卡片细节,这将会很有帮助(通过点击卡开始新活动并通过详细信息访问卡详细信息。)
答案 0 :(得分:0)
您已实施getItemViewType
类的Adapter
方法,如下所示
@Override
public int getItemViewType(int position) {
// here i'm assuming that you've some method isNewItem(position)
// which returns item type as integer and
// ITEM_TYPE_NEW and ITEM_TYPE_OLD are declared as constants
if (isNewItem(position)) {
return ITEM_TYPE_NEW;
} else {
return ITEM_TYPE_OLD;
}
}
在方法onBindViewHolder
中,如果背景颜色为new,则应更改背景颜色。
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final int itemType = getItemViewType(position);
if (itemType == ITEM_TYPE_NEW) {
// here I'm assuming that there is setNewItemBackColor method
// present in your adapter class which changes background color
// of card view of ViewHolder
((YourViewHolderClassNameHere)holder).setNewItemBackColor();
}
}
有关更详细的实施,请参阅this答案。