Как оформить переполнение панели действий на устройствах с аппаратной кнопкой меню?

вот как я оформляю переполнение панели действий на стоковом андроиде:

<style name="DropDownNav.MyTheme" parent="@android:style/Widget.Holo.Light.Spinner">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
    <item name="android:dropDownSelector">@drawable/selectable_background</item>
</style>

Но указанный пользовательский селектор не применяется к всплывающему меню параметров на устройствах Samsung с аппаратной кнопкой, вместо этого по умолчанию он синий.

Я видел этот ответ и попытался применить

<style name="ListPopupWindow.IvuTheme" parent="android:Widget.ListPopupWindow">
    <item name="android:dropDownSelector">@drawable/list_selector_holo_light</item>
    <item name="android:listSelector">@drawable/list_selector_holo_light</item>
</style>

но безрезультатно.

Какой стиль мне нужно наследовать (и какой соответствующий атрибут в моей теме), чтобы изменить селектор в последнем меню опций аппаратной кнопки?

Спасибо за любой совет




Ответы (1)


1) Расширьте свой класс приложений

public class MyApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();

    try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if(menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
            }
        } catch (Exception ex) {
            // Ignore
        }
    }
}

2) добавить в манифест:

<application
    ...
    android:name=".MyApplication">
person Andrew    schedule 06.12.2014
comment
Это работает. Я использую его в реальном приложении. И минус неуместен. - person Andrew; 26.01.2016