菜单溢出3dot在某些设备上不可见

时间:2014-12-08 08:30:03

标签: java android menuitem

在该溢出按钮上没有显示菜单按钮的设备

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/incoming"
    android:showAsAction="always"
    android:title="Incoming Call Control"/>
<item
    android:id="@+id/list"
    android:showAsAction="always"
    android:title="Active Filter List"/>

1 个答案:

答案 0 :(得分:2)

在具有硬件菜单按钮的设备上不可见。要启用操作溢出图标,您可以在应用程序中执行脏黑客攻击。

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()中调用上述方法。