在Recycler视图中为新添加的项目设置不同颜色的CardView

时间:2017-07-09 15:59:55

标签: android firebase firebase-realtime-database android-recyclerview android-cardview

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

1 个答案:

答案 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答案。