Android 什么决定传统菜单按钮是否显示在蜂巢系统栏中?

Android 什么决定传统菜单按钮是否显示在蜂巢系统栏中?,android,Android,我有一个有很多活动的应用程序。我在清单中设置: <uses-sdk android:minSdkVersion="4" targetSdkVersion="11"/> 我还设置了一个v11风格,以便所有活动都使用v11+上的全息主题 问题是我的所有活动都在系统栏上显示传统菜单按钮。具有菜单的活动(我在其中使用OnCreateOptions菜单的活动)同时显示传统菜单按钮和操作栏溢出菜单按钮。按下传统按钮可展开屏幕右上角的菜单 在我不使用OnCreateOptions菜单的活动

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

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

我还设置了一个v11风格,以便所有活动都使用v11+上的全息主题

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

在我不使用OnCreateOptions菜单的活动中,仍然有一个旧按钮不起任何作用

我还没弄明白发生了什么事。Hackborn写道,targetSdkVersion是唯一控制是否显示传统按钮的工具:


编辑:澄清问题描述。

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

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

我发现您所犯的错误与我所犯的相同

您的targetSdkVesrion名称缺少android:前缀,因此它实际上被忽略。 应该是:

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

刚才你的应用程序将以v11为目标,你永远不会得到传统的菜单按钮

另见相关讨论:


  • 我看你和我犯了同样的错误

    您的targetSdkVesrion名称缺少android:前缀,因此它实际上被忽略。 应该是:

    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11"/>
    
    
    
    刚才你的应用程序将以v11为目标,你永远不会得到传统的菜单按钮

    另见相关讨论:


  • 谢谢,但这对所描述的问题没有影响。谢谢,但这对所描述的问题没有影响。我的应用中确实有一个TabActivity,我知道它已被弃用。但我不认为这会影响我应用程序中的所有其他活动。我曾尝试将选项卡转换为片段,但有许多方法停止工作,我现在无法投入时间完全重写这些活动。我的应用程序中确实有一个TabActivity,我知道它已被弃用。但我不认为这会影响我应用程序中的所有其他活动。我曾尝试将选项卡转换为片段,但有许多方法停止工作,我现在无法投入时间完全重写这些活动。