Estou seguindo o exemplo padrão de como adicionar a RatingBar
. Para controlar o número de estrelas que tentei usar android:numStars="5"
. O problema é que o número de estrelas não parece fazer absolutamente nada. No layout retrato, obtenho 6 estrelas e quando viro o telefone obtenho cerca de 10 estrelas. Tentei definir o número de estrelas em minha Activity ( myBar.setNumStars(5)
) que carrega o xml, mas também não tive sucesso com essa opção.
Portanto, minha pergunta é como defino meu layout de forma que mostre apenas cinco estrelas? Set numStars
não parece funcionar.
Obrigado antecipadamente, Roland
A
RatingBar.setNumStar
documentação diz:Portanto, definir a largura do layout como
wrap_content
deve resolver esse problema.fonte
Isso funcionou para mim:
RatingBar
deveria estar dentro deLinearLayout
outro lugar, em vez de ter a largura do layout definida para envolver o conteúdoRatingBar
.fonte
Além disso, se você definir um
layout_weight
, substituirá onumStars
atributo.fonte
Você deve apenas usar
numStars="5"
em seu XML e definirandroid:layout_width="wrap_content"
.Então, você pode brincar com estilos e outras coisas, mas o "wrap_content" em layout_width é o que resolve.
fonte
Se você estiver usando
android:layout_width="match_parent"
Use wrap_content e só mostrará o conjunto numStars :)
android:layout_width="wrap_content"
fonte
Configure o número de estrelas no arquivo XML ... Não há necessidade de fornecê-lo em Estilos ou Atividade / Fragmento .... IMPORTANTE: Certifique-se de colocar o WIDTH como Wrap conteúdo e pesos não estão habilitados
fonte
Também estou enfrentando o problema de exceder as estrelas do que o número especificado de estrelas. Para isso, não queremos nos preocupar com qualquer tipo de layout, seja ele relativo ou linear. Basta usar a largura da seguinte forma:
Por favor, evite usar match_parent e fill_parent para ratingbar .
Espero que as coisas sejam úteis.
fonte
Mesmo eu enfrentando o problema @Roland, incluí mais um atributo chamado
na minha
RatingBar
declaração em XML. Este atributo impedia a configuração das estrelas necessárias e a configuração doNumStars
Mantenha-se informado sobre os problemas que encontrar!
fonte
Para mim, tive um problema até remover o enchimento. Parece que há um bug em certos dispositivos que não altera o tamanho da visualização para acomodar o preenchimento e, em vez disso, compacta o conteúdo.
Remova
padding
, use em seulayout_margin
lugar.fonte
Para mostrar uma classificação de estrelas simples em números redondos, use este código
E usar assim
button.setText (getIntToStar (4));
fonte
Você pode adicionar uma classificação padrão de cinco estrelas ao lado do layout xml
Editar:
fonte
Se você estiver envolvendo o
RatingBar
interior de umConstraintLayout
commatch_constraint
para sua largura, a visualização do editor mostrará um número de estrelas proporcionais à sua largura real, não importa se você definir aandroid:numStars
propriedade. Usewrap_content
para obter a visualização correta:fonte
O valor padrão é definido com andoid: rating no layout xml.
fonte
fonte
Descobri que o
RatingBar
esticado até um número máximo de estrelas porque foi colocado em uma tabela com o atributoandroid:stretchColumns = "*"
.Depois de
stretchCoulumns
tirar todas as colunas, asRatingBar
exibidas de acordo com oandroid:numStars
valorfonte
Outra possibilidade é que você esteja usando a Avaliação no Adaptador da visualização de lista
Os parâmetros abaixo são necessários para que todos os atributos funcionem corretamente:
root
paraparent
attachToRoot
comofalse
Ex: convertView = inflater.inflate (R.layout.myId, pai, falso);
fonte
A coisa real aqui é usar em
wrap_content
vez dematch_parent
. Se você for usar,match_parent
o layout será preenchido com as estrelas mesmo que seja mais do que a variável numStars .fonte