Я следую стандартному примеру того, как добавить RatingBar
. Чтобы контролировать количество звездочек, я пытался использовать android:numStars="5"
. Проблема в том, что количество звезд, похоже, вообще ни на что не влияет. В портретной ориентации я получаю 6 звезд, а когда переворачиваю телефон, я получаю около 10 звезд. Я попытался установить количество звездочек в моем Activity ( myBar.setNumStars(5)
), который загружает xml, но и с этой опцией успеха не было.
Итак, мой вопрос: как мне определить мой макет, чтобы он отображал только пять звезд? Сет numStars
не работает.
Заранее спасибо, Роланд
В
RatingBar.setNumStar
документации говорится:Таким образом, установка ширины макета
wrap_content
должна решить эту проблему.источник
Это сработало для меня:
RatingBar
должно быть внутри,LinearLayout
кроме ширины макета, установленной для переноса содержимогоRatingBar
.источник
Кроме того, если вы установите
layout_weight
, это заменяетnumStars
атрибут.источник
Вы должны просто использовать
numStars="5"
в своем XML и установитьandroid:layout_width="wrap_content"
.Затем вы можете поиграть со стилями и другими вещами, но «wrap_content» в layout_width - вот что помогает.
источник
Если вы используете
android:layout_width="match_parent"
Используйте wrap_content, и он покажет только установленные numStars :)
android:layout_width="wrap_content"
источник
Настройте количество звездочек в XML-файле ... Не нужно указывать его в стилях или в действии / фрагменте .... ВАЖНО: убедитесь, что вы поместили ШИРИНУ как содержимое обтекания, а веса не включены
источник
Я также сталкиваюсь с проблемой, что количество звезд превышает указанное количество звезд. Для этого нам не нужно беспокоиться о том, какой тип макета - относительный или линейный. Просто используйте ширину следующим образом:
Пожалуйста, избегайте использования match_parent и fill_parent для панели рейтинга .
Надеюсь, это будет полезно.
источник
Даже когда я столкнулся с проблемой @Roland, я добавил еще один атрибут под названием
в моем
RatingBar
объявлении в XML. Этот атрибут не позволял устанавливать требуемые звезды и настраиватьNumStars
Оставайтесь в курсе проблем, с которыми вы сталкиваетесь!
источник
Для меня у меня была проблема, пока я не удалил прокладку. Похоже, что на некоторых устройствах есть ошибка, которая не изменяет размер представления для размещения отступов, а вместо этого сжимает содержимое.
Удалите
padding
, используйтеlayout_margin
вместо этого.источник
Чтобы показать простой звездный рейтинг в круглых цифрах, просто используйте этот код
И используйте это так
button.setText (getIntToStar (4));
источник
Вы можете добавить рейтинг по умолчанию в пять звезд сбоку от макета xml
Редактировать:
источник
Если вы оборачиваете
RatingBar
внутреннюю часть сConstraintLayout
помощьюmatch_constraint
для ее ширины, предварительный просмотр редактора будет показывать количество звездочек, пропорциональное его фактической ширине, независимо от того, что если вы установитеandroid:numStars
свойство. Используйте,wrap_content
чтобы получить правильный предварительный просмотр:источник
Значение по умолчанию устанавливается с помощью andoid: rating в макете xml.
источник
источник
Я обнаружил, что
RatingBar
растянуто до максимального количества звезд, потому что оно было заключено в таблицу с атрибутомandroid:stretchColumns = "*"
.Как только я
stretchCoulumns
снял все столбцы,RatingBar
отображается в соответствии соandroid:numStars
значениемисточник
Другая возможность - вы используете рейтинг в адаптере представления списка.
Для правильной работы всех атрибутов необходимы следующие параметры:
root
вparent
attachToRoot
какfalse
Пример: convertView = inflater.inflate (R.layout.myId, parent, false);
источник
Фактически здесь нужно использовать
wrap_content
вместоmatch_parent
. Если вы будете использоватьmatch_parent
макет, он будет заполнен звездочками, даже если он больше, чем значение переменной numStars .источник