为回收器视图中新添加的项目设置不同的卡片视图颜色



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

  • 你必须实现getItemViewTypeAdapter类的方法,如下所示

    @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();
    }
    }
    

有关更详细的实现,请参阅此答案。

最新更新