2011-10-11 36 views
1

我有一个有很多活动的应用程序。我设置的清单:什么决定了Honeycomb系统栏中是否显示旧菜单按钮?

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

我还设置了V11的风格,这样的活动将全部使用上V11 +的全息主题。

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

在我的活动,不使用onCreateOptionsMenu,仍然有一个传统的按钮,不会做任何事情。

我一直无法弄清楚发生了什么事。哈克博恩写道,targetSdkVersion是控制是否显示遗留按钮的唯一东西:link

编辑:澄清问题描述。

+0

我有我的应用程序,这是我知道的是弃用TabActivity。但我不希望这会影响我的应用程序中的其他任何活动。我曾尝试将标签转换为片段,但有很多方法停止工作,现在我无法投入时间完全重写这些活动。 – Tenfour04

回答

5

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

targetSdkVesrion名错过机器人:前缀,所以它实际上忽略。 它应该是:

<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"
0

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

+0

谢谢,但这对描述的问题没有影响。 – Tenfour04