Estoy siguiendo el ejemplo estándar de cómo agregar un archivo RatingBar
. Para controlar la cantidad de estrellas que intenté usar android:numStars="5"
. El problema es que la cantidad de estrellas no parece hacer nada en absoluto. En formato vertical obtengo 6 estrellas y cuando doy la vuelta al teléfono obtengo alrededor de 10 estrellas. Intenté establecer el número de estrellas en mi Actividad ( myBar.setNumStars(5)
) que carga el xml pero tampoco tuve éxito con esa opción.
Entonces, mi pregunta es ¿cómo defino mi diseño para que solo muestre cinco estrellas? El conjunto numStars
no parece funcionar.
Gracias de antemano, Roland
La
RatingBar.setNumStar
documentación dice:Por lo tanto, establecer el ancho del diseño en
wrap_content
debería resolver este problema.fuente
Esto funcionó para mí:
RatingBar
debería estar dentro,LinearLayout
además de tener el ancho del diseño configurado para envolver el contenidoRatingBar
.fuente
Además, si establece un
layout_weight
, esto reemplaza alnumStars
atributo.fuente
Solo debe usar
numStars="5"
en su XML y configurarandroid:layout_width="wrap_content"
.Luego, puedes jugar con estilos y otras cosas, pero el "wrap_content" en layout_width es lo que hace el truco.
fuente
Si esta usando
android:layout_width="match_parent"
Use wrap_content y solo mostrará el conjunto numStars :)
android:layout_width="wrap_content"
fuente
Configure el número de estrellas en el archivo XML ... No es necesario proporcionarlo en Estilos o Actividad / Fragmento ... IMPORTANTE: Asegúrese de poner el ANCHO como contenido envolvente y los pesos no están habilitados
fuente
También estoy enfrentando el problema de exceder las estrellas que el número especificado de estrellas. Para esto, no queremos preocuparnos por el tipo de diseño, ya sea relativo o lineal. Simplemente use el ancho de la siguiente manera:
Por favor, evite el uso de match_parent y fill_parent para ratingbar .
Espero que las cosas sean de ayuda.
fuente
Incluso yo estaba enfrentando el problema @Roland, había incluido un atributo más llamado
en mi
RatingBar
declaración en XML. Este atributo impidió establecer las estrellas requeridas y configurar elNumStars
¡Manténgase informado sobre los problemas que encuentre!
fuente
Para mí, tuve un problema hasta que quité el relleno. Parece que hay un error en ciertos dispositivos que no altera el tamaño de la vista para acomodar el relleno, sino que comprime el contenido.
Eliminar
padding
, usarlayout_margin
en su lugar.fuente
Para mostrar una calificación de estrellas simple en una figura redonda, simplemente use este código
Y úsalo así
button.setText (getIntToStar (4));
fuente
Puede agregar una calificación predeterminada de cinco estrellas al lado del diseño xml
Editar:
fuente
Si está ajustando el
RatingBar
interiorConstraintLayout
amatch_constraint
por su ancho, la vista previa del editor mostrará una cantidad de estrellas proporcional a su ancho real, sin importar si establece laandroid:numStars
propiedad. Úselowrap_content
para obtener la vista previa correcta:fuente
El valor predeterminado se establece con andoid: rating en el diseño xml.
fuente
fuente
Descubrí que se
RatingBar
extendía a un número máximo de estrellas porque estaba encerrado en una Tabla con el atributoandroid:stretchColumns = "*"
.Una vez que
stretchCoulumns
quité todas las columnas, seRatingBar
muestran de acuerdo con elandroid:numStars
valorfuente
Otra posibilidad es que esté utilizando la clasificación en el adaptador de la vista de lista
Los siguientes parámetros son necesarios para que todos los atributos funcionen correctamente:
root
enparent
attachToRoot
comofalse
Ejemplo : convertView = inflater.inflate (R.layout.myId, parent, false);
fuente
Lo que realmente importa aquí es usar en
wrap_content
lugar dematch_parent
. Si va a utilizar,match_parent
el diseño se rellenará con las estrellas, incluso si es más que la variable numStars .fuente