Ricardo
Ricardo

Reputation: 708

Change Android dropdown spinner color AppCompat

I'm trying to to change the popupMenu / DropDown color of the actionBar:

Here's what I have:

Styles.xml

<style name="Theme.Moy" parent="@style/Theme.AppCompat">
    <item name="colorPrimary">@color/red_moy</item>
    <item name="colorPrimaryDark">@color/red_moy_satus_bar</item>
    <item name="android:popupMenuStyle">@style/PopupMenu.Moy</item>
    <item name="android:actionDropDownStyle">@style/myapp_DropDownNav</item>
    <item name="android:actionBarWidgetTheme">@style/myapp.actionBarWidgetTheme</item>
</style>

<style name="myapp.actionBarWidgetTheme" parent="Theme.Moy">
    <item name="android:spinnerDropDownItemStyle">@style/myapp.Widget.DropDownItem.Spinner</item>
</style>

<style name="PopupMenu.Moy" parent="@style/Widget.AppCompat.PopupMenu">
    <item name="android:popupBackground">@color/red_moy_satus_bar</item>
</style>

<style name="myapp_DropDownNav" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar">
    <item name="background">@drawable/menu_dropdown_panel_moy</item>
    <item name="android:background">@drawable/menu_dropdown_panel_moy</item>
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_moy</item>
    <item name="android:dropDownSelector">@drawable/menu_dropdown_panel_moy</item>
</style>

<style name="myapp.Widget.DropDownItem.Spinner" parent="Widget.AppCompat.DropDownItem.Spinner">
    <item name="android:textAppearance">@style/myapp.TextAppearance.Widget.DropDownItem</item>
</style>

<style name="myapp.TextAppearance.Widget.DropDownItem" parent="TextAppearance.AppCompat.Widget.DropDownItem">
    <item name="android:textColor">@color/gray_background_moy</item>
</style>

Styles.xml values-v14

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="Theme.Moy" parent="@style/Theme.AppCompat">
    <item name="colorPrimary">@color/red_moy</item>
    <item name="colorPrimaryDark">@color/red_moy_satus_bar</item>
    <item name="android:popupMenuStyle">@style/PopupMenu.Moy</item>
    <item name="android:actionDropDownStyle">@style/myapp_DropDownNav</item>
    <item name="android:actionBarWidgetTheme">@style/myapp.actionBarWidgetTheme</item>
</style>

<style name="myapp.actionBarWidgetTheme" parent="Theme.Moy">
    <item name="android:spinnerDropDownItemStyle">@style/myapp.Widget.DropDownItem.Spinner</item>
</style>

<style name="PopupMenu.Moy" parent="@style/Widget.AppCompat.PopupMenu">
    <item name="android:popupBackground">@color/red_moy_satus_bar</item>
</style>

<style name="myapp_DropDownNav" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar">
    <item name="background">@drawable/menu_dropdown_panel_moy</item>
    <item name="android:background">@drawable/menu_dropdown_panel_moy</item>
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_moy</item>
    <item name="android:dropDownSelector">@drawable/menu_dropdown_panel_moy</item>
</style>

<style name="myapp.Widget.DropDownItem.Spinner" parent="Widget.AppCompat.DropDownItem.Spinner">
    <item name="android:textAppearance">@style/myapp.TextAppearance.Widget.DropDownItem</item>
</style>

<style name="myapp.TextAppearance.Widget.DropDownItem" parent="TextAppearance.AppCompat.Widget.DropDownItem">
    <item name="android:textColor">@color/gray_background_moy</item>
</style>

It's supposed to be red, but it's still dark grey (default)

Thanks for your help!

Upvotes: 0

Views: 3151

Answers (1)

GPack
GPack

Reputation: 2504

Theme.Appcompat in appcompat-v7 V21 uses its own properties for the ActionBar, that is without android: prefix. Edit them to popupMenuStyle, actionDropDownStyle, and actionBarWidgetTheme.

Upvotes: 2

Related Questions