Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 始终在支持操作栏中显示菜单项_Android_Android Actionbar_Optionmenu - Fatal编程技术网

Android 始终在支持操作栏中显示菜单项

Android 始终在支持操作栏中显示菜单项,android,android-actionbar,optionmenu,Android,Android Actionbar,Optionmenu,我正在开发android应用程序。我已经在其中实现了支持的操作栏。我想始终显示选项菜单项。但它没有表现出来。它显示在下拉菜单中。我的菜单项代码如下所示 <item android:id="@+id/action_settings" android:icon="@drawable/add_post" android:title="@string/action_settings" /> 任何帮助都将不胜感激。来自 您应该将showAsAction属性

我正在开发android应用程序。我已经在其中实现了支持的操作栏。我想始终显示选项菜单项。但它没有表现出来。它显示在下拉菜单中。我的菜单项代码如下所示

<item
    android:id="@+id/action_settings"
    android:icon="@drawable/add_post"
    android:title="@string/action_settings"

    />

任何帮助都将不胜感激。

来自 您应该将
showAsAction
属性添加到
always
ifRoom

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          android:showAsAction="ifRoom" />
    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          android:showAsAction="never" />
</menu>

您可以在android菜单xml文件中使用不同的
android:showAsAction
属性值

要在actionbar上显示所有时间可见的菜单,您应该使用android:showaAction=“always”

您也可以使用android:showAsAction=“ifRoom”,但它会在操作栏中显示菜单,但并不总是如此,而是会根据不同的屏幕大小显示

已编辑

参考:

然后尝试使用下面的代码

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >
    <item
        android:id="@+id/menu_lang"
        app:showAsAction="always" <!-- app:showAsAction="ifRoom" -->
        android:title="@string/menu_lang"
        android:icon="@android:drawable/ic_input_lang"/>
</menu>


如果使用
AppCompat
ActionBar,则必须以以下方式更改布局:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto" >
    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/add_post"
        android:title="@string/action_settings"
        app:showAsAction="always" />
</menu>  

showaAction
属性将仅适用于自定义前缀,请参阅。据它说:

请注意,上面的showAsAction属性使用标记中定义的自定义命名空间。这在使用支持库定义的任何XML属性时都是必要的,因为这些属性在旧设备上的Android框架中不存在


希望这有帮助。

删除这一行
xmlns:app=”http://schemas.android.com/apk/res-auto“

使用android:showAsAction=“always”
而不是
app:showAsAction=“always”


我知道这个问题已经2年多了,但是为了完整起见,如果您想在代码中设置这个问题,请使用以下内容:

menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
其他选择包括

MenuItem.SHOW_AS_ACTION_NEVER
MenuItem.SHOW_AS_ACTION_IF_ROOM
MenuItem.SHOW_AS_ACTION_ALWAYS
MenuItem.SHOW_AS_ACTION_WITH_TEXT
MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW

这行代码无效。是否更新了代码?你能把溢出图标也显示为截图吗?我已经添加了示例图像。我想显示永久按钮。不要掉下来,谢谢你,卡比拉。我得到了我的答案。可能是您缺少一个名称空间。如果您在Eclipse中,请检查这一点。有时XML会显示错误,您必须清理项目,只要您不再修改XML,错误就会消失。若这样做,请再次清理项目,错误将消失。我正在使用AppCompat库。当我使用app:showAsAction=“always”时,它不会给我任何结果。所有菜单都在下拉菜单下。但是,如果我将
android:showAsAction=“always”
放在语句中,即使我使用AppCompat,也会得到预期的结果,但语句下面会有一条红线警告。在这种情况下应该怎么做?
menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
MenuItem.SHOW_AS_ACTION_NEVER
MenuItem.SHOW_AS_ACTION_IF_ROOM
MenuItem.SHOW_AS_ACTION_ALWAYS
MenuItem.SHOW_AS_ACTION_WITH_TEXT
MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW