2010-03-17 2 views
5

Я не вижу никакого метода, как setStyle для класса RatingBar. Как установить стиль рейтинга из кода?Установить рейтингбар стиль от кода

+1

Дубликат: http://stackoverflow.com/questions/2016249/how-to-programatically-setting-style-attribute-in-a-view – Casebash

+3

Не дубликат. Панель оценки имеет разные свойства и функциональность. Такие вещи, как установка звездных изображений, звездных высот и т. Д. НАСТОЯЩИЙ ответ не будет отвечать на этот вопрос. – StackOverflowed

ответ

11

Это работает для меня (source):

RatingBar rating = 
    new RatingBar(context, null, android.R.attr.ratingBarStyleSmall); 
+0

Это не работает ни одно событие, но рабочий файл представления –

2

Вам необходимо установить его в XML-файле! Если вы хотите изменить его в перспективе, вы можете иметь два разных вида (rb) и переключать их в программе (добавлять/удалять из макета) или использовать rb1.setVisibility (View.VISIBLE) и rb2.setVisibility (View .ПРОШЛО);

<RatingBar 
    android:layout_height="wrap_content" android:layout_width="wrap_content" 
    android:layout_alignParentRight="true" android:id="@+id/rb1" 
    style="?android:attr/ratingBarStyleSmall" 
    android:clickable="false" android:numStars="5"> 
</RatingBar> 
-1

Если вы программно создавать RatingBar, как следует

RatingBar рейтинг = новый RatingBar (контекст, нуль, android.R .attr.ratingBarStyleSmall);

то не для ГЭТ, чтобы добавить

rating.setIsIndicator (ложь);

иначе прикосновение не будет работать на RatingBar.

android.R.attr.ratingBarStyleSmall дает очень маленькие звезды, если вы хотите, чтобы иметь немного больше звезд использовать android.R.attr.ratingBarStyleIndicator

+0

Может кто-нибудь, пожалуйста, дайте мне знать, почему этот ответ был понижен, поскольку я протестировал этот код, и он отлично работает. –