为什么我还有菜单按钮?

时间:2012-03-11 23:56:59

标签: android menu

我正在使用Holo.Light.Dialog主题进行我的一项活动。出于某种原因,当在带有屏幕键的ICS手机上运行时,它会给我一个软菜单键。这个键什么也没做,我没有菜单,我似乎无法摆脱它。奇怪的是,在ICS平板电脑上(相同的设置,只是一个更大的屏幕)我没有得到软件菜单键。

我尝试使用Holo.Light.Dialog.NoActionBar(.MinWidth),认为我获取菜单键的原因是对话框没有标题栏,而应用程序假设我仍然想要一个菜单​​键。我希望告诉它我不想要一个动作栏来修复它,但这似乎没有帮助。

关于如何强迫它消失的任何想法?

活动XML:

<activity android:label="@string/login" 
        android:name=".login" 
        android:excludeFromRecents="false" 
        android:screenOrientation="unspecified" 
        android:windowSoftInputMode="adjustResize|adjustPan" 
        android:theme="@android:style/Theme.Holo.Light.Dialog"/>`

编辑:为了进一步说明,我的MinSDK是11,而targetSDK是14.两者都应该允许它不使用菜单按钮。

3 个答案:

答案 0 :(得分:1)

确保&lt; uses-sdk android:minSdkVersion =“11”android:targetSdkVersion =“14”/&gt;元素出现在&lt; application&gt;之前你的清单中的元素。

答案 1 :(得分:1)

我认为你需要在你的全息主题中设置动作栏。在你的例子中,你有Theme.Holo.Light。对话,你说你没有动作栏就做了一个不同的主题。尝试简单的Theme.Holo.Light。

来自android开发博客,"Say goodbye to the menu button"

  

如果将minSdkVersion或targetSdkVersion设置为11或更高,则   系统不会添加旧版溢出按钮。否则,
  系统将在Android上运行时添加旧版溢出按钮      3.0或更高。 唯一的例外是,如果将minSdkVersion设置为10或更低,请将targetSdkVersion设置为11,12或13,而不是   使用ActionBar,系统将在添加旧溢出按钮时   在Android 4.0或更高版本的手机上运行您的应用。

这是你正在描述的事情。

答案 2 :(得分:0)

尝试此操作:删除R.menu文件中存在的菜单项。