在 RecyclerView 中每隔三张卡片更改一次颜色

Change color of every third card in RecyclerView

我已经使用 RecyclerViewCardView 实现了代码。 我的列表有 15 个项目,现在我想更改列表中每个奇数 CardView 的背景颜色。 请为此提供正确的代码,因为我是 CardView 的新手。 我为此尝试了简单的奇偶代码。 这是代码:

在onBindViewHolder方法中:

@Override
public void onBindViewHolder(final DataHolder holder, int position) {
    holder.tv1.setText(result[position]);
    imageLoader.displayImage("drawable://" + imgs[position], holder.iv1, options);

    for(int i =0; i <= imgs.length;i+=2)
    {
        holder.cv1.setCardBackgroundColor(R.color.colorAccent);
    }
}

您应该使用 % 运算符。

position % 2 == 0应该用来改变奇数和偶数背景。

如果您希望每三张卡片的背景都与其他卡片不同,请使用:position % 3 == 0

伪代码示例:

if((position % 2 == 0)){
     holder.cardView.setCardBackgroundColor(R.color.list_even_color);
 }else{
     holder.cardView.setCardBackgroundColor(R.color.list_odd_color);
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {

    if(position%2==0){

        holder.rowLinearLayout.setBackgroundColor(ContextCompat.getColor(context,R.color.color1));

    }else{
        holder.rowLinearLayout.setBackgroundColor(ContextCompat.getColor(context,R.color.color2));

    }
}

// 此代码用于奇偶行项目。