I can add underline in spinner using style="@style/Base.Widget.AppCompat.Spinner.Underlined"
. How can I change the color of the underline using style only? I don't want to use any drawable file to change this.
<item name="colorControlHighlight">@color/colorAccent</item>
<item name="colorControlNormal">@color/colorAccent</item>
Using above style, Its only highlight underline when user click on it. Its not changing color of underline on normal state.
Add this to spinner
android:backgroundTint="@color/gray"
By default the Spinner
will use the color set via android:textColorSecondary
or colorControlNormal
in your AppTheme
. So either set the appropriate colors there or define a new Theme and apply this one to your Spinner:
styles.xml
<style name="ThemeSpinner">
<!-- Color when pressed -->
<item name="colorAccent">#ffa000</item>
<!-- Default color for the dropdown arrow and line -->
<item name="colorControlNormal">#ffc107</item>
</style>
layout.xml
<Spinner
style="@style/Widget.AppCompat.Spinner.Underlined"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeSpinner" />
Note: The dropdown arrow will also be tinted - I'm not aware of an option to color the arrow separately
Seems like this question has already been answered. But here is a way to resolve that programatically as well. (Tested on API 19 & Above).
Use ViewCompat
for this.
ViewCompat.setBackgroundTintList(spinner, ColorStateList.valueOf(your_color));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With