是什么决定了传统菜单按钮是否显示在Honeycomb系统栏中?

时间:2011-10-11 03:08:36

标签: android

我有一个有很多活动的应用程序。我在清单中设置了这个:

<uses-sdk android:minSdkVersion="4"  targetSdkVersion="11"/>

我还设置了v11风格,以便活动将全部使用v11 +上的Holo主题。

问题是我的所有活动都显示系统栏上的旧菜单按钮。我的菜单(我在其中使用onCreateOptionsMenu)的活动同时显示了旧菜单按钮和操作栏溢出菜单按钮。按传统按钮可展开屏幕右上角的菜单。

在我没有使用onCreateOptionsMenu的活动中,仍有一个遗留按钮无法执行任何操作。

我无法弄清楚发生了什么。 Hackborn写道,targetSdkVersion是控制是否显示遗留按钮的唯一因素:link

编辑:澄清问题说明。

2 个答案:

答案 0 :(得分:5)

我发现你和我一样犯了同样的错误。

你的 targetSdkVesrion 名称错过了 android:前缀,所以它实际上被忽略了。 它应该是:

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11"/>

刚才你的应用程序将定位到v11,并且你永远不会得到遗留菜单按钮。

另见相关讨论:

  1. Honeycomb themes *.NoActionBar or *.NoTitleBar - where is Menu button?
  2. Android and Honeycomb - how to have a menu icon with SDK 13 without having an "action bar"

答案 1 :(得分:0)

您需要在XML中的菜单项中添加android:showAsAction =“ifRoom | withText”。除非您针对Android 3.0进行构建,否则这将引发错误。切换到此版本进行构建时,请确保不使用任何仅3.0方法调用,因为它会在没有编译时错误的旧版本上崩溃。