Android RatingBar - kompletny bałagan

Wiem, że to zabrzmi ranty, ale wydaje mi się, że elementy i zachowania interfejsu użytkownika Androida są czasami niedostępne.

Rozważ następujący kod XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

    <RatingBar
    android:id="@+id/ratingBar1"
    android:style="@android:style/Widget.Holo.Light.RatingBar.Small"
    android:progress="3"
    android:max="5"
    android:numStars = "5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />


</LinearLayout>

Zrzuty ekranu, jak to wyglądałoby na różnych rozmiarach urządzeń:

 Pasek oceny Nexus S

 Pasek oceny tabletu

 Pasek oceny małego urządzenia

Nawet jeśli jest to tylko narzędzie podglądu, mogę potwierdzić, że tak naprawdę wygląda na urządzeniach.

Małe zachowanie urządzenia jest szaleństwem. W jaki sposób pasek ratingu określający 5 gwiazdek wyświetla tylko 3, dlaczego nie zmniejszyć skali gwiazd, aby zmieścił się w oknie?

Myśląc, że problemem jest szerokość wrap_content, przełączyłem się na layout_width = "fill_parent" i to nie zmieniło wyglądu małego urządzenia, ale całkowicie zawiodło się na tabletach (tak bardzo dla "numStars" 5):

Moje pytanie brzmi: czy istnieje sposób na poprawne zachowanie dla RatingBar pod względem rozmiaru? Można by pomyśleć, że liczby numstars lub max byłyby wystarczające, ale są całkowicie dowolne. Kiedy pasek ratingowy jest rozciągnięty tak, że ciągnie więcej gwiazd, dodaje gwiazdy i widzi, jak przy postępie 3, rysuje go zgodnie z liczbą wyświetlanych gwiazd? Nie ma sensu nie stosować się do numStars!

Jeśli nie ma możliwości uzyskania logicznej wydajności z paska RatingBar, czy są jakieś alternatywy, w tym widżety firm trzecich? Jeśli nie, myślę, że zawsze mogę narysować 5 ImageViews i po prostu dopasować go do odpowiedniego wykonania.

(Pamiętaj, że wszystkie te zachowania były prezentowane tylko w jednym zestawie RatingBar w układzie - zapomnij o próbie zmieniania rozmiaru z innymi widżetami / komponentami lub wykorzystywaniu własnych stylów. Wiem, że zostało to zrobione, ale dlaczego jest to zachowanie domyślne?)

questionAnswers(1)

yourAnswerToTheQuestion