2014-11-13 6 views
0

Я пытаюсь динамически установить фоновый рисунок/цвет меню переполнения в коде и нашел ответы here, которые НЕ РАБОТАЮТ для Android 4.x. Кто-нибудь имеет решение или идеи о том, как это сделать?Как установить цвет фона меню переполнения

+0

Вы даже попытались это посмотреть? Googling «set android overflow menu color» дал мне все, что вам нужно знать в первых нескольких результатах. –

+0

Ни один из них не работает. поэтому я снова разместил сообщение. – droideckar

+0

Сообщите нам, что вы пробовали. –

ответ

1

Если я правильно помню, я нашел много решений раньше, но ни один из них не работал для 4.4. Мне пришлось изменить определение пользовательской темы и использовать в style, как указано на this, ответ на вопрос How to change the background color of Action Bar's Option Menu in Android 4.2?. Отсюда и мой снайпер. Благодаря @Jonik. :

<style name="MyAppActionBarTheme" parent="android:Theme.Holo.Light"> 
    <item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item> 
    <item name="android:actionBarStyle">@style/MyApp.ActionBar</item> 
</style> 

<!-- The beef: background color for Action Bar overflow menu --> 
<style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow"> 
    <item name="android:popupBackground">@drawable/menu_dropdown_panel</item> 
</style> 

Кроме того, я помню, что это как-то не будет работать, если вместо parent="android:Theme.Holo.Light", я использовал parent= "android:Theme.Holo.Light.DarkActionBar". Поэтому убедитесь, что вы используете соответствующую родительскую тему.

Дайте мне знать, если это поможет.

+0

спасибо за ваш ответ, но я пытаюсь установить фоновый цвет динамически в коде (а не через собственный стиль). – droideckar

+0

Увидев ответы на ссылку, которую вы дали, они пытаются сравнить имя представления со «внутренним» классом 'com.android.internal.view.menu.IconMenuItemView'. Я уверен, что это не предназначалось для непосредственного использования. В любом выпуске имя или путь «может» измениться, что, вероятно, сломает ваше приложение. Если вы столкнетесь с каким-либо способом сделать это программно чистым способом, пожалуйста, напишите свой ответ здесь. Благодарю. Было бы хорошо знать. –

+0

Да, это определенно проблема, com.android.internal.view.menu.IconMenuItemView, не найден на моих тестовых устройствах. я попробую найти исходный xml для меню переполнения и получить доступ к меню с помощью метода getResouces(). getIdentifier() для установки вида вручную в коде. – droideckar

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