1

Es zeigt nicht einmal einen halben Stern! Natürlich habe ich alle anderen Fragen bereit, sie enthalten keine Magie, die ich nicht versucht habe.Android-BewertungBar-BewertungBarStyleSmall zeigt nur volle/gefüllte Sterne

Ich habe versucht, den Stil zu ändern ratingBarStyle und es gibt einen halben Stern, aber natürlich, normale Größe RatingBar erfüllt meine Anforderungen hier nicht.

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 
     <RatingBar 
      android:id="@+id/ratingBar2" 
      style="?android:attr/ratingBarStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:isIndicator="true" 
      android:backgroundTint="@color/colorAccent" 
      android:progressTint="@color/colorAccent" 
      android:secondaryProgressTint="@color/colorAccent" 
      android:numStars="5" 
      android:rating="3.3" 
      android:stepSize="0.1"/> 
    </LinearLayout> 

Mein Java-Code:

ratingBar.setStepSize(0.1f); 
ratingBar.setRating(3.5f); 

Ergebnis ich sehe:
enter image description here

Ich bin mit Android-Support-Version 23.4.0. Meine compileSdkVersion und targetSdkVersion sind beide 23. Ich teste auf einem Android 5.0-Gerät.

+0

Verwenden Sie Schrittgröße 0,5 und überprüfen Sie – Vickyexpert

Antwort

4

Entfernen oder ändern Sie die android:secondaryProgressTint. Es wird verwendet, um den letzten (Teil-) Stern zu füllen. Dies ist, was ich mit:

<RatingBar 
     android:id="@+id/ratingBar2" 
     style="?android:attr/ratingBarStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:isIndicator="true" 
     android:backgroundTint="#f00" 
     android:progressTint="#0f0" 
     android:secondaryProgressTint="#00f" 
     android:numStars="5" 
     android:rating="3.3" 
     android:stepSize="0.1"/> 

Rating bar with partial star

ich nur die drei Farben geändert. Es scheint, dass der Hintergrundfarbton überhaupt nicht verwendet wird (AppCompat 23.4.0, API 22-Gerät).

+0

Das war sehr hilfreich! Nur um das zu vervollständigen. Wenn du willst, dass der blaue/secondaryProgressTint weg ist. Dann verwende # 00000000, was eine 100% transparente Farbe ist. oder eine schwarze Farbe mit 0 Opazität, um korrekt zu sein. – Nulle