我想为 Firebase 回收器视图中添加的项目设置不同的颜色。我正在使用卡片视图来显示数据。我想要的是:假设我已经在列表中有一些数据,并且它们将具有白色背景。现在假设在列表中添加了一些新值。我希望新添加的项目具有与已存在的项目不同的背景色调(例如绿色(。我正在从Firebase获取数据。现在,在我查看卡详细信息或第一次查看新数据后,这些新卡的颜色现在应该是白色,因为它们现在是旧的。如果我的卡片保留其颜色,直到读取卡片详细信息,这将很有帮助(通过点击卡片来访问卡片详细信息,该卡片会启动包含详细信息的新活动(。
-
你必须实现
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(); } }
有关更详细的实现,请参阅此答案。