RecicladorVer FondoColor

Usé unRecyclerView para mostrar algunos datos de texto. Tengo la lógica para seleccionar diferentes tarjetas.

Me gustaría cambiar la apariencia de las tarjetas seleccionadas.

public void toggleSelection(int pos)
    {
        RecyclerView.ViewHolder viewHolder = recView.findViewHolderForPosition(pos);
        if (selectedItems.get(pos, false)) {
            selectedItems.delete(pos);
            viewHolder.itemView.setBackgroundColor(Color.WHITE);
        }
        else {
            selectedItems.put(pos, true);
            viewHolder.itemView.setBackgroundColor(Color.GREEN);
        }
        notifyItemChanged(pos);
    }

Si uso mi código como este, funciona. Mi evento onClick activa este código y el color de fondo de mi tarjeta cambia a verde.

Así que aquí está mi problema: desplazarse hacia abajo muestra otras tarjetas en la misma posición relativa (pero más abajo en la lista) con el mismo color de fondo incluso si no están seleccionadas; Al seleccionar la primera carta y desplazarse hacia abajo, donde la octava carta es la carta superior visible, se muestra la octava carta resaltada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta