RatingBar se está semi-transparente

Estoy usando RecyclerView con RatingBar en cada fila. Ahora, a veces parte de RatingBar s se dibujan incorrectamente. Después de salir de una pantalla y volver atrás todo vuelve a la normalidad. No tengo ni idea de por qué sucede esto, incluso RatingBar cualquier estilo de RatingBar por lo que debería tener apariencia predeterminada.

Así es como se ve:

Introduzca aquí la descripción de la imagen

Probado en Nexus 6P (Android 7.1.1). También probado en Samsung Galaxy J3 (2016) (Android 5.1.1) y no hay ningún problema aquí.

También he añadido

 holder.rbRating.requestLayout(); 

En onBindViewHolder() . Reduce el problema un poco, pero todavía está presente. Cuando desplazo una fila "mala" de una pantalla cuando se reutiliza parece bien.

Aquí está la disposición de la fila:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:paddingTop="@dimen/main_margin_top" android:paddingBottom="@dimen/main_margin_top" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/tvRatingTitle" android:text="Czystość wody" android:textSize="16sp" android:textStyle="bold" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RatingBar android:id="@+id/rbRating" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:isIndicator="true" android:layout_centerHorizontal="true" android:layout_below="@+id/tvRatingTitle" android:numStars="5" android:rating="2.5" android:stepSize="0.1" /> <CheckBox android:id="@+id/chkMissing" android:text="Zaznacz jeśli nie ma" android:layout_centerHorizontal="true" android:layout_below="@+id/rbRating" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> 

También he intentado cambiar a android.support.v7.widget.AppCompatRatingBar , pero no hace ninguna diferencia.

EDITAR:

@Muhib Pirani solución parece estar funcionando, pero tengo dos pequeños problemas:

1) en el Nexus 6P la primera capa de estrella está compensada por pocos píxeles (acercar para ver):

Introduzca aquí la descripción de la imagen

2) En Samsung Galaxy J3 (2016) se ve así:

Introduzca aquí la descripción de la imagen

Estoy bien con las fronteras, pero me gustaría que sean verdes (no gris, el fondo debe ser gris) en las estrellas vacías también.

También me enfrenté al mismo problema. Tuve que programar los colores a RatingBar como esto y funcionó:

 LayerDrawable layerDrawable = (LayerDrawable) ratingBar.getProgressDrawable(); layerDrawable.getDrawable(2).setColorFilter(ContextCompat.getColor(context, R.color.colorPrimaryDark), PorterDuff.Mode.SRC_ATOP); layerDrawable.getDrawable(1).setColorFilter(ContextCompat.getColor(context, R.color.colorPrimaryDark), PorterDuff.Mode.SRC_ATOP); layerDrawable.getDrawable(0).setColorFilter(ContextCompat.getColor(context, R.color.editTextBor), PorterDuff.Mode.SRC_ATOP);//when not selected color. 

Mantenga layerDrawable.getDrawable(2) y layerDrawable.getDrawable(1) mismo color.

También tuve problemas con el nativo RatingBar, así que decidí usar MaterialRatingBar . Resolvió todos mis problemas.

Espero eso ayude

  • Cómo establecer una calificación específica en RatingBar en Espresso?
  • Android Nougat (7.0 / API 24) cuenta de clasificación está mal en OnRatingBarChangeListener
  • Android RatingBar se pinta mal
  • Android RatingBar icono vector no se muestra
  • Clasificación de estrellas de Android cómo ajustar a ancho
  • Cómo cambiar la clasificación de Android estrellas de la barra?
  • Android RatingBar: No puede completar un ratingBar parcial si personalizo su color
  • RatingBar - Alternar o deshacer
  • Construir una RatingBar utilizando imágenes cargadas desde la web
  • Pequeña Custom RatingBar: Diseño de materiales
  • Captura RatingBar Haga clic
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.