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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了onCreateOptionsMenu中的expandActionView永久删除或隐藏操作栏中的其他菜单项相关的知识,希望对你有一定的参考价值。

我有一个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);
}
答案

我使用过并且正在为我工​​作的解决方案是使用始终或永远而不是ifRoom用于showAsAction

以上是关于onCreateOptionsMenu中的expandActionView永久删除或隐藏操作栏中的其他菜单项的主要内容,如果未能解决你的问题,请参考以下文章

Haskell Accelerate 中的 Exp a -> a

片段内的 onCreateOptionsMenu

onCreateOptionsMenu 永远不会被调用

onCreateOptionsMenu()没有在FragmentActivity上调用

onCreateOptionsMenu 没有在 Fragment 内被调用

Android开发之旅-Fragment和Activity之间onCreateOptionsMenu的联系