2014-01-14 5 views
16

Ich habe ein benutzerdefiniertes Thema mit einem Elternteil @android: style/Theme.Holo.Light.DarkActionBar Ich möchte das Dropdown-Menü in die weiße Version ändern (siehe Bild)Dunkle Aktionsleiste mit weißem Dropdown-Menü von Holo Light

Ich habe einige Beispiele gesucht, aber sie haben nicht funktioniert, ist es möglich, nur das Dropdown-Menü von der DarkActionBar mit der Light-Version zu überschreiben?

(I dont sherlock ActionBar verwenden)

enter image description here

+0

Ich neige dazu, nur verwenden diese http://jgilfelt.github.io/android-actionbarstylegenerator/ – Broak

+0

Beitrag Check out [http://stackoverflow.com/questions/16878662/how-to-set- the-background-of-android-popupmenu-zu-weiß] (http://stackoverflow.com/questions/16878662/how-to-set-the-background-of-android-popupmenu-to-white) Ich denke es ist das gleiche Problem. – JoeyPhillips

Antwort

20

Das ist für mich gearbeitet. Hoffe, dass es helfen:

<style name="YOUR_DARK_AB_THEME"> 
    <item name="android:actionBarWidgetTheme">@style/YourActionBarWidget</item> 
</style> 

<!-- This helps the PopupMenu stick with Light theme while the ActionBar is in Dark theme --> 
<style name="YourActionBarWidget" 
    parent="android:Theme.Holo.Light"> 
    <item name="android:popupMenuStyle">@android:style/Widget.Holo.Light.PopupMenu</item> 
    <item name="android:dropDownListViewStyle">@android:style/Widget.Holo.Light.ListView.DropDown</item> 
</style> 
+1

Funktioniert perfekt. –

+7

Jede Möglichkeit, die in Light.DarkActionbar nicht funktioniert? Ich bekomme immer das dunkle Dropdown. - Scheint auch nicht mit Standard-Dunkel zu funktionieren. vielleicht, weil ich AppCompat verwende –

+0

Ich habe es mit AppCompat arbeiten – Leon

1

den gleichen Kontext von ActionBar verwenden, um die PopupMenu

actionBar.getThemedContext()

So

ActionBar ActionBar =

zu erstellen ((ActionBarActivity) getActivity()). GetSupportActionBar();
PopupMenu popMenu = neues PopupMenu (actionBar.getThemedContext(), anyView);