如何在ICS中控制OverFlow菜单的使用

时间:2012-10-13 09:36:01

标签: android

我想控制在ICS中使用溢出菜单。我还在我的onCreateView()中尝试了这段代码,并参考了这个link

     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
        }

请帮助我,我错了,以及如何使用它。

1 个答案:

答案 0 :(得分:4)

  

我错了

在您的应用中使用此代码是错误的。

  

我如何使用它

你不应该使用它。请允许溢出菜单正常运行。

首先,您的代码可能无法在所有设备和Android版本上使用。

更重要的是,您所做的是告诉您的用户您认为自己比自己更重要。

每个设备都基于操作系统版本和硬件,可以触发菜单:操作栏中的...示意图或设备的MENU按钮。用户希望设备上的应用程序之间的一致性。对于设备具有MENU按钮的用户,他们希望使用所有应用程序中的菜单按钮 来显示可用的菜单。您试图通过打破他们的菜单按钮来伤害这些用户。请不要这样做。请允许您的应用与用户设备上的其他应用相同,其中MENU按钮会显示溢出菜单。


<强>更新

从Android 4.4开始,无论设备是否有菜单按钮,溢出......功能都会出现在操作栏中,而Google正在给设备制造商施加更大的压力,要求其停止包含MENU按钮。 I have blogged a bit more about this