Android 使用SearchView时如何覆盖活动内容?

Android 使用SearchView时如何覆盖活动内容?,android,android-layout,searchview,Android,Android Layout,Searchview,点击搜索图标后,我希望SearchView小部件展开,并覆盖其下方的内容。收件箱通过在其上方覆盖不透明的灰色来屏蔽当前内容。我怎么做同样的事情?我正在使用SearchView小部件 我只需在searchview展开时切换到另一个片段,并在其折叠时切换回即可。。代码如下所示: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu);

点击搜索图标后,我希望SearchView小部件展开,并覆盖其下方的内容。收件箱通过在其上方覆盖不透明的灰色来屏蔽当前内容。我怎么做同样的事情?我正在使用
SearchView
小部件


我只需在searchview展开时切换到另一个片段,并在其折叠时切换回即可。。代码如下所示:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.main, menu);

    //Setup the search widget
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    MenuItem menuItem = menu.findItem(R.id.action_search);
    SearchView mSearchView = (SearchView) menuItem.getActionView();

    //Not sure if you need this line for the searchView to be expandable
    mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

    mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {
            //Update contents of the fragment
        }

        @Override
        public boolean onQueryTextChange(String s) {
            //Update contents of the fragment
        }
    });

    MenuItemCompat.setOnActionExpandListener(menuItem,
            new MenuItemCompat.OnActionExpandListener() {
                @Override
                public boolean onMenuItemActionExpand(MenuItem item) {
                    //Switch to search fragment
                }

                @Override
                public boolean onMenuItemActionCollapse(MenuItem item) {
                    //Switch back to previous fragment
                }
            })
    ;

    return super.onCreateOptionsMenu(menu);
}

这看起来不错。不过,我现有的片段包含工具栏,因此管理这种类型的开关有点棘手。我想你可以重新展开搜索菜单(甚至可能是预展开的),最好用新的预展开工具栏搜索视图替换展开时的整个片段。