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:
- La Android RatingBar tiene umbral "malo" para ciertos dispositivos, ¿arreglarlo?
- Android RatingBar mostrar recubrimiento negro en algunos dispositivos
- Android: la barra de calificación no es visible, sólo se hace visible al tocarla
- Captura RatingBar Haga clic
- Personalizar la barra de calificación con diferentes imágenes personalizadas para cada estrella después de la selección
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):
2) En Samsung Galaxy J3 (2016) se ve así:
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.
- Construir una RatingBar utilizando imágenes cargadas desde la web
- Androide. RatingBar (llenando la siguiente estrella)
- ¿Cómo puedo configurar el color estrella de la barra de calificación?
- Clasificación de estrellas de Android cómo ajustar a ancho
- Android RatingBar icono vector no se muestra
- Pequeña Custom RatingBar: Diseño de materiales
- Barra de clasificación personalizada en dispositivos de pan de jengibre
- RatingBar - Alternar o deshacer
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
- Intentando crear una respuesta rápida de WhatsApp para teléfonos pre N
- Seguridad de subprocesos en las bibliotecas de Android