如何使用硬件菜单按钮在设备上设置Action Bar Overflow的样式?

时间:2013-08-21 14:42:56

标签: android android-actionbar android-theme android-styles android-optionsmenu

这就是我在动态栏上设置Action Bar Overflow的样式:

<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设备上的弹出选项菜单,而是默认为蓝色。

我见过this answer并尝试申请

<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 个答案:

答案 0 :(得分:-1)

1)扩展您的Application类

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)添加到Manifest:

<application
    ...
    android:name=".MyApplication">