操作栏上未显示溢出菜单

时间:2014-12-09 16:26:09

标签: android overflow-menu

当我在avd模拟器上执行te app时,菜单会出现在操作栏上,但是当它在真实设备上执行时,我必须点击选项按钮来查看菜单。这段代码出了什么问题?< / p>

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.android.was4fi.MainActivity" >

<item
   android:id="@+id/op1"
   android:showAsAction="never"
   android:title="@string/comite"/>
<item
  android:id="@+id/op2"
  android:showAsAction="never"
  android:title="@string/programa" />
<item
  android:id="@+id/op3"
  android:showAsAction="never"
  android:title="@string/fechas" />
<item
 android:id="@+id/op4"
 android:showAsAction="never"
 android:title="@string/localizacion" />
 </menu>

1 个答案:

答案 0 :(得分:0)

正如我已经提到的几天前here,在具有硬件菜单按钮的设备上看不到溢出图标。要启用操作溢出图标,您可以在应用程序中执行脏黑客攻击。

private void getOverflowMenu() {

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

application班级onCreate()中调用上述方法。