onCreateOptionsMenu 中的 expandActionView 从操作栏中永久删除或隐藏其他菜单项

expandActionView in onCreateOptionsMenu removes or hides other menu items from action bar permanently

我在操作栏中有一个 searchView,当用户在 searchView 中进行查询,然后旋转设备时,我在 searchView 中将查询设置为 onCreateOptionsMenu 并展开 searchViewmenuItem.expandActionView() 因为 searchView.setIconified(false) 对我没有影响,但是调用 menuItem.expandActionView() 会删除或隐藏其他菜单项 即使在用户关闭 searchView 后其他菜单项仍然隐藏! !在用户关闭 searcheView 后,即使 searchView 图标也没有显示在操作栏 其他菜单项中,并且 serachView 已将 showAsAction 设置为 ifRoom

我很惊讶,因为当用户通过单击搜索图标展开操作视图时没有问题,但是当我调用 expandActionView 时我遇到了这个问题!

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    final MenuItem searchMenuItem = menu.findItem(R.id.searchMenuItem);
    searchView = (SearchView) searchMenuItem.getActionView();
    searchView.setOnQueryTextListener(this);
    searchView.setOnCloseListener(this);
    searchView.setSubmitButtonEnabled(false);

    searchView.setIconifiedByDefault(true);// <-- this line has no effect even when using false !!

    if(initialQuery != null) {

        searchView.setIconified(false);// <-- this line has no effect !!!

        searchView.setQuery(initialQuery, true);
        searchMenuItem.expandActionView();//<-- this line expands searchView but hides other menu items!!
        searchView.setQuery(initialQuery, true);
    }
    return super.onCreateOptionsMenu(menu);
}

我已经使用并为我工作的解决方案是使用 alwaysnever 而不是 ifRoom for showAsAction