Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Spinner Underline color

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.

like image 247
Bhoomika Brahmbhatt Avatar asked May 09 '16 06:05

Bhoomika Brahmbhatt


3 Answers

Add this to spinner

android:backgroundTint="@color/gray"
like image 66
Ananta Prasad Avatar answered Nov 06 '22 04:11

Ananta Prasad


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:

Example:

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

like image 38
reVerse Avatar answered Nov 06 '22 06:11

reVerse


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));
like image 3
sud007 Avatar answered Nov 06 '22 06:11

sud007