Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 如何防止ActionBar SearchView按钮消失_Android_Android Actionbar_Searchview_Android Optionsmenu - Fatal编程技术网

Android 如何防止ActionBar SearchView按钮消失

Android 如何防止ActionBar SearchView按钮消失,android,android-actionbar,searchview,android-optionsmenu,Android,Android Actionbar,Searchview,Android Optionsmenu,我一直在努力解决这个问题,但在任何地方都找不到任何解决方案 目前我有以下ActionBar选项菜单 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item andro

我一直在努力解决这个问题,但在任何地方都找不到任何解决方案

目前我有以下ActionBar选项菜单

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search"
        android:title="@string/menu_search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="ifRoom|collapseActionView" />

    <item
        android:id="@+id/action_sort_by"
        android:title="@string/sort_by"
        app:showAsAction="never" />

    <item
        android:id="@+id/action_refresh"
        android:title="@string/action_refresh"
        app:showAsAction="never" />

</menu>

除了在打开“选项”菜单的同时也打开“搜索”选项外,所有功能都可以正常工作:

目标布局符合预期

搜索选项打开

这是导致问题的步骤,您可以看到搜索选项现在位于菜单中

由于上一步的原因,在关闭菜单和搜索选项时,搜索按钮消失

如果在搜索选项打开时我没有打开选项菜单,那么一切都会正常工作,但是这是用户无法预料的,他们可能会在打开搜索选项的情况下打开菜单,导致搜索图标消失,从而导致非常有问题的用户体验


我如何解决这个问题,如何在保持相同布局的同时防止这个问题发生?搜索图标可见,3点选项菜单中的所有其他内容都可见。

要始终显示搜索图标,只需将
app:showAsAction=“ifRoom | collapseActionView”更改为
app:showAsAction=“always | collapseActionView”
要始终显示搜索图标,只需更改
app:showAsAction=“ifRoom | collapseActionView”
to
app:showAsAction=“always | collapseActionView”

您的问题是当它们(搜索和选项菜单)都打开时,不是吗?@蜂胶否,我在打开搜索选项后手动打开了选项菜单。这是导致问题的步骤,如果在搜索打开时我没有打开该菜单,那么搜索图标在打开后不会消失。你的问题是当它们(搜索和选项菜单)都打开时,不是吗?@蜂胶否,我在打开搜索选项后手动打开了选项菜单。这是导致问题的步骤,如果在搜索打开时我没有打开菜单,那么搜索图标随后不会消失。噢,开枪,开枪!不可能!我从未使用过这个选项的原因是因为Android总是警告“更喜欢ifRoom而不是always”,这里的链接只能在5分钟后接受答案,我将不得不等待一点,但这就是我问题的答案!哦,开枪,开枪,开枪!不可能!我从未使用过这个选项的原因是因为Android总是警告“更喜欢ifRoom而不是always”,这里的链接只能在5分钟后接受答案,我将不得不等待一点,但这就是我问题的答案!