【问题标题】:How to overlay activity content when using SearchView?使用 SearchView 时如何覆盖活动内容?
【发布时间】:2015-02-15 16:38:44
【问题描述】:

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

【问题讨论】:

    标签: android android-layout searchview


    【解决方案1】:

    我通过简单地在搜索视图展开时切换到另一个片段来实现它,并在它折叠时切换回来。代码看起来像这样:

    @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);
    }
    

    【讨论】:

    • 这看起来不错。我现有的片段包含工具栏,所以管理这种类型的开关有点棘手。
    • 我想你可以重新扩展搜索菜单(甚至可以预先展开)
    • 最好将展开时的整个片段替换为新的预展开工具栏 SearchView。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    相关资源
    最近更新 更多