2014-01-14 2 views
16

У меня есть пользовательская тема с родительским @android: style/Theme.Holo.Light.DarkActionBar Я хочу изменить выпадающее меню в белую версию (см. Изображение)Dark actionbar с белым выпадающим меню из Holo Light

Я просмотрел несколько примеров, но они не сработали для меня, можно ли просто переопределить выпадающее меню из DarkActionBar со световой версией?

(я не использую Шерлока ActionBar)

enter image description here

+0

Я, как правило, просто использовать этот http://jgilfelt.github.io/android-actionbarstylegenerator/ – Broak

+0

Проверьте этот пост, [http://stackoverflow.com/questions/16878662/how-to-set- the-background-of-android-popupmenu-to-white] (http://stackoverflow.com/questions/16878662/how-to-set-the-background-of-android-popupmenu-to-white) Я думаю, это это та же проблема. – JoeyPhillips

ответ

20

Это работало для меня. Надеюсь, что это поможет:

<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

Работает отлично. –

+7

Любой шанс, что это просто не работает в Light.DarkActionbar? Я продолжаю получать темное выпадающее меню. - Кажется, что не работает с черным по умолчанию. может быть, потому, что я использую AppCompat –

+0

У меня есть работа с AppCompat – Leon

1

используют один и тот же контекст ActionBar создать PopupMenu

actionBar.getThemedContext()

Так,

ActionBar ActionBar = ((ActionBarActivity) getActivity()). GetSupportActionBar();
PopupMenu popMenu = new PopupMenu (actionBar.getThemedContext(), anyView);

Смежные вопросы