问题
I am trying to style my RatingBar with the following code:
<style name="RatingBarfeed" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorControlNormal">@color/white</item>
<item name="colorControlActivated">@color/duskYellow</item>
</style>
And in layout.xml I am using the following code:
<android.support.v7.widget.AppCompatRatingBar
android:theme="@style/RatingBarfeed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/ratingBarStyleSmall"
android:id="@+id/ratingBar"
android:paddingBottom="0.45dp"
app:layout_constraintTop_toTopOf="@+id/rating"
app:layout_constraintLeft_toRightOf="@+id/rating"
app:layout_constraintBottom_toBottomOf="@+id/rating"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.0"
android:background="@color/orange"
android:rating="3.5"
android:stepSize="0.5"/>
Its working fine in Marshmallow (check the screenshot)
But in Lollipop Theme is not working (check the screenshot)
Please Help...!!!!
回答1:
After much struggle I got my answer:
it should be style="@style/RatingBarfeed"
instead of android:theme+"@style/RatingBarfeed"
For styling star fill, empty and partial color
android:progressTint="#F9BB28"
android:progressBackgroundTint="@color/white"
android:secondaryProgressTint="@color/white"
Final code should be like
<android.support.v7.widget.AppCompatRatingBar
android:layout_width="wrap_content"
android:layout_height="18dp"
style="@style/RatingBarfeed"
android:id="@+id/ratingBar"
android:gravity="center"
android:progressTint="#F9BB28"
android:progressBackgroundTint="@color/white"
android:secondaryProgressTint="@color/white"
app:layout_constraintTop_toTopOf="@+id/rating"
app:layout_constraintLeft_toRightOf="@+id/rating"
app:layout_constraintBottom_toBottomOf="@+id/rating"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.0"
android:background="@color/orange"
android:rating="3.5"
android:stepSize="0.1"/>
Style should be:
<style name="RatingBarfeed" parent="android:style/Widget.Material.RatingBar.Small">
<item name="colorControlNormal">@color/white</item>
<item name="colorControlActivated">@color/duskYellow</item>
</style>
来源:https://stackoverflow.com/questions/39911082/ratingbar-theme-working-in-marshmallow-but-not-in-lollipop