14

В моем приложении для Android рейтинговые бары не видны. Он становится видимым только при прикосновении к нему и исчезает, как только я снимаю пальцы.Android: Ratingbar не видно, становится видимым только при касании

Мой код:

<RatingBar 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/myratingStars" 
      android:layout_gravity="center_horizontal|center_vertical|center" 
      android:numStars="5"/> 

Это не делает в Lollipop эмулятора/реальный телефон/окна дизайн Android-студия (в режиме API 23), но визуализируется в KitKat эмулятора и окна дизайна Android (в API режиме 15).

Полный файл макета:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/white"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="24dp" 
     android:orientation="vertical"> 
     <RatingBar 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/myratingStars" 
      android:layout_gravity="center_horizontal|center_vertical|center" 
      android:numStars="5"/> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
      <android.support.v7.widget.AppCompatEditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:textSize="16sp" 
       android:maxLines="10" 
       android:id="@+id/myratingTxt" 
       android:layout_marginTop="12dp" 
       android:layout_marginBottom="2dp" 
       android:hint="@string/write_review"/> 
     </android.support.design.widget.TextInputLayout> 

     <android.support.v7.widget.AppCompatButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/submitReview" 
      android:text="@string/review_submit" 
      android:layout_gravity="center_horizontal|center|center_vertical" 
      android:textColor="@color/white" 
      android:onClick="submitReview" 
      android:layout_marginTop="8dp" 
      tools:visibility="visible"/> 
    </LinearLayout> 

</LinearLayout> 
+0

Возможно, некоторые из них покрыли его. –

+0

Или цвет такой же, как на заднем плане –

+0

Вы выяснили, почему это произошло? У меня такая же проблема. – user2520215

ответ

1

Без всего макета файла невозможно решить эту проблему, но если произойдет только в леденец или Зефир может быть высота проблема. Попробуйте установить в рейтинг бар «высота: 10dp»

1
yourRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { 
      @Override 
      public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { 
       YourRatingValue = String.valueOf(rating);     
       Toast.makeText(getActivity(), "Your Rating :" + YourRatingValue, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
+0

попробуйте setOnRatingBarChangeListener –

3

По this вопросу Google Code, попробуйте добавить, что строки в RatingBar свойства:

android:isIndicator="true" 
style="?android:attr/ratingBarStyleIndicator" 

Или, возможно, некоторые из этих стилей:

style="?android:attr/ratingBarStyle" 

или

style="android:attr/ratingBarStyleSmall" 

Как вы можете видеть, от разработчиков Google нет ответа, поэтому я не знаю, почему это странное поведение появляется, но, возможно, это помогает.

4

После небольшого исследования попытался удачи, и это сработало !!! Наконец нашел решение!

Добавление этих атрибутов для спасения моей жизни !!!

android:progressBackgroundTint="@color/colorAccent" 
android:progressTint="@color/colorAccent" 
android:secondaryProgressTint="@color/colorAccent" 

Пример:

<android.support.v7.widget.AppCompatRatingBar 
     android:id="@+id/ratingBar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:progressBackgroundTint="@color/colorAccent" 
     android:progressTint="@color/colorAccent" 
     android:secondaryProgressTint="@color/colorAccent" 
     android:rating="4" /> 

Вы можете изменить эти цвета в соответствии с вашими потребностями !!

Дополнительно:

андроида: progressTint используется для цвета фактического прогресса

андроида: secondaryProgressTint используется для вторичного прогресса, когда частичный рейтинг выбран сказать, половина другая половина окрашена с помощью этого атрибута ,

android: progressBackgroundTint используется для отдыха в рейтинге сказать 3 из 5, так что последние 2 цветные этот!

Счастливое кодирование !! Ешьте пить Android! ;)