RecyclerView BackgroundColor

Utilicé un RecyclerView para mostrar algunos datos de texto. Tengo la lógica en él 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 utilizo 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: el desplazamiento hacia abajo muestra otras tarjetas en la misma posición relativa (pero más abajo en la lista) con el mismo color de fondo aunque no estén seleccionadas; seleccionando la primera tarjeta y desplazándose hacia abajo hasta donde la octava tarjeta es la tarjeta visible superior muestra la octava carta resaltada.

onBindViewHolder() establecer los colores de forma explícita en el método onBindViewHolder() .

Una vista de reciclador como el nombre sugiere recicla las vistas, por lo que el 0 º elemento se recicla como el octavo elemento en su caso. Utilizan el mismo titular de vista creado con el onCreateViewHolder() Y cada vez que uno de ellos entra en la vista se llama al método onBindViewHolder() .

Le sugiero que cree un campo booleano adicional en su modelo de datos, diciéndole si ha resaltado la vista o no. Deberá toggleSelection() en toggleSelection() . Entonces en el onBindViewHolder() usted comprueba el valor de este campo y fija su color por consiguiente.

  • Firebase UI RecyclerView onClick
  • Error de Android RecyclerView
  • Cuando getItemCount y método getItemViewType se llaman en Recycler Adapter
  • ¿Cómo añadir una vista de pie de página en RECYCLER VIEW?
  • RecyclerViewAdapter.notifyDataSetChanged () en una referencia de objeto nulo
  • Creación de un RecyclerView ampliable
  • StaggeredGridLayoutManager reordena los elementos
  • Aumenta la escala del elemento en RecyclerView para superponer 2 elementos adyacentes.
  • (Smooth) ScrollToPosition no funciona correctamente con RecyclerView
  • Android Recycler filtro adaptador de vista con animación
  • Error al inflar la clase RecyclerView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.