Android 如何控制IC中溢出菜单的使用

Android 如何控制IC中溢出菜单的使用,android,Android,我想控制ICS中溢出菜单的使用。我也在我的onCreateView()中尝试了这段代码 请帮助我哪里错了,以及我如何使用它 我错在哪里 您在应用程序中使用此代码是错误的 我如何使用它 你不应该使用它。请允许溢出菜单正常运行 首先,您的代码可能无法在所有设备和Android版本上运行 更重要的是,你所做的是告诉你的用户你认为你比他们更重要 基于操作系统版本和硬件,每个设备都有其触发菜单的方式:操作栏中的…启示或设备的菜单按钮。用户希望其设备上的应用程序之间保持一致性。对于设备上有菜单按钮的用户,他

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

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

我错在哪里

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

我如何使用它

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

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

更重要的是,你所做的是告诉你的用户你认为你比他们更重要

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


更新

从Android 4.4开始,溢出。。。无论设备是否有菜单按钮,操作栏上都会显示“启示”,谷歌也对设备制造商施加了更大的压力,要求他们停止使用菜单按钮

我错在哪里

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

我如何使用它

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

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

更重要的是,你所做的是告诉你的用户你认为你比他们更重要

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


更新



从Android 4.4开始,溢出。。。无论设备是否有菜单按钮,操作栏上都会显示“启示”,谷歌也对设备制造商施加了更大的压力,要求他们停止使用菜单按钮

使用ActionBarSherlock?你的意思是说使用ActionBarSherlock是可能的吗?我使用的是ActionBarSherlock,我已经启用了跨平台的溢出菜单。但我问你是否正在使用它。如果你想尝试一些,我可以发布ABS。请参考这里更详细的解释:使用ActionBarSherlock?你的意思是使用ActionBarSherlock是可能的?嗯,我正在使用ActionBarSherlock,我已经启用了跨平台的溢出菜单。但是我问你是否正在使用它。如果你想尝试一些,我可以发布ABS。请参考这里更详细的解释:@Rishabh.CreatioSoft:HOME按钮与溢出菜单无关。你不是完全正确的。当创建一个用户每天8-12小时使用的商业应用程序时,强迫用户点击愚蠢的菜单按钮是不好的。菜单按钮很烂,这就是他们删除的原因。即使是老设备所有者也很少使用它或猜测它可能在那里。。我不得不在网上搜索,因为不清楚是否还有更多的活动!你必须告诉每个用户“嘿,伙计,有一些动作不可见,按菜单按钮”。否则溢出是可见的,并清楚地告诉你有什么东西。@Parhs:“强迫用户按愚蠢的菜单按钮是不好的”--然后不要使用选项菜单和动作栏。如果你认为你可以做得更好,就拿出你自己的UI。另一方面,白痴们所做的是在Android框架中使用反射来处理私有数据,从而创建脆弱的应用程序。这项技术不会在所有版本的Android或所有设备上都有效(私有实现细节可能会被设备制造商更改)。@commonware这篇文章解释了这个问题。你的答案无关紧要,不要从我的句子中孤立出一个短语。您可能是一位专家,经验丰富,但菜单按钮+操作栏完全不直观。让actionbarsherlock这样做的唯一原因是官员是这样做的。@Parhs+1。菜单按钮完全不直观。当用户在应用程序中看到带有动作的ActionBar时,他们最不会想到的是“可能存在一些隐藏动作?为什么不按菜单按钮呢?”。有一种通过使用子菜单模拟溢出按钮的解决方案。虽然它很难看,但并不涉及使用反射…。@Rishabh.CreatioSoft:HOME按钮与溢出菜单无关。你不是完全正确的。当创建一个用户每天8-12小时使用的商业应用程序时,强迫用户点击愚蠢的菜单按钮是不好的。菜单按钮很烂,这就是他们删除的原因。即使是老设备所有者也很少使用它或猜测它可能在那里。。我不得不在网上搜索,因为不清楚是否还有更多的活动!你必须告诉每个用户“嘿,伙计,有一些动作不可见,按菜单按钮”。否则溢出是可见的,并清楚地告诉你有什么东西。@Parhs:“强迫用户按愚蠢的菜单按钮是不好的”--然后不要使用选项菜单和动作栏。如果你认为你可以做得更好,就拿出你自己的UI。另一方面,白痴们所做的是通过使用反射来处理t中的私有数据来创建脆弱的应用程序
     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
        }