1

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

     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
        }

请帮助我在哪里出错以及如何使用它。

4

1 回答 1

4

我错了

在您的应用程序中包含此代码是错误的。

我如何使用它

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

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

更重要的是,您正在做的是告诉您的用户您认为您比他们更重要。

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


更新

从 Android 4.4 开始,无论设备是否具有 MENU 按钮,操作栏中都会出现溢出 ... 我在博客上写了更多关于此的内容

于 2012-10-13T11:11:20.510 回答