Android Rating Bar показывает только полные звезды, а не половину звезд
Я использую рейтинговые бары в своем приложении для Android. Но он показывает только полные звезды, когда мне также нужны полузвезды.
Я вставил строку SQLite с именем и ratingValue, там ratingValue стоит как "3.5", но мое приложение превращает его в "4". Даже если мой StepSize равен "0,5", даже значение по умолчанию изменяется на "3"
EDIT:
Если вы нажмете на listrow, он отобразит другую рейтинговую панель, которую вы можете "оценить", и если вы нажмете на кнопку, она отправит значение рейтинга в базу данных. Список RatingBar listitem предназначен только для показа "среднего" рейтинга, но там, где он идет не так, он округляет значение вверх
ИЗМЕНИТЬ 2:
установите stepize в 0.1 и теперь, как ни странно, только средняя звезда принимает число с плавающей точкой...
Остальные звезды все еще полны
И если я установил рейтинг на 1.2, только вторая звезда примет значение float, 0.2 первое и т.д., Но другие звезды (не в этом диапазоне) будут только или полными или пустыми
Здесь некоторый код
ListItem_layout
<TableRow>
<RatingBar
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/sportsRatingBar"
android:gravity="center_horizontal"
android:focusableInTouchMode="false"
android:isIndicator="true"
android:clickable="false"
android:focusable="false"
android:layout_column="1"
android:rating="1.1"
android:stepSize="0.1" />
ListItem
if(ratingBar!=null) {
ratingBar.setRating(p.getRating());
ratingBar.setTag(p.getId());
}
Класс повторного использования
public float getRating() { return Rating; }
Столбец таблицы SQLite для оценки
COLUMN_RATING + " real not null);"
И, наконец, получение из базы данных
c.getFloat(COLUMN_RATING_COL));
некоторые изображения для объяснения
![после установки первой рейтинговой панели до 2.6]()
Ответы
Ответ 1
Я думаю, что для этого вам не нужна библиотека, я просто попробовал, и она работает.
<android.support.v7.widget.AppCompatRatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/ratingBarStyle"
android:background="@android:color/holo_red_dark"
android:id="@+id/ratingBar1"
android:stepSize="0.1"
android:rating="2.5"/>
Я установил значение start в 4.5, и он работает таким образом.
RatingBar ratingBar = (RatingBar) findViewById(R.id.coloredRatingBar1);
ratingBar.setRating(4.8f);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Log.i(TAG, "onRatingChanged: rating : "+rating);
}
});
Ответ 2
В первую очередь определяется способ определения рейтинга, он не может принимать значения. Для параметра Clickable установлено значение false, а isIndicator - true. Чтобы принять ввод, определите виджет следующим образом.
<RatingBar
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/sportsRatingBar"
android:gravity="center_horizontal"
android:rating="2.5"
android:stepSize="0.5" />
Для получения значений, которые не уверены в настройке переменной Rating
Посмотрите изображение, как выглядит виджетов как!