工具栏中的SearchView默认情况下不会展开

时间:2015-03-16 17:40:01

标签: android android-intent android-activity android-view android-search

我创建了一个搜索视图,我喜欢在启动搜索时关注搜索视图,在参考了一些stackoverflow的问题之后,我得到了一个指向setIconifiedBydefault(false);但它不起作用,当我触摸搜索图标时它会起作用。如果我错了,请指导我,这是我的代码。

public boolean onCreateOptionsMenu(Menu menu) {


        final SearchView searchView = new SearchView(this);

        searchView.setIconifiedByDefault(false);
        searchView.setQueryHint(this.getResources().getString(R.string.search_hint));
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                try {
                    query = URLEncoder.encode(query, "UTF-8");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                searchView.clearFocus();

                Intent intent = new Intent(getApplicationContext(), SearchActivity.class);
                intent.putExtra("query", query);
                intent.putExtra("search", "true");
                startActivity(intent);
                return true;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                return false;
            }

        });

        //TODO make menu an xml item
        menu.add("search")
                .setIcon(R.drawable.ic_action_search)
                .setActionView(searchView)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM|MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

        return true;
    }

1 个答案:

答案 0 :(得分:0)

我认为你需要调用expandActionView()。

             ...
             menu.add("search")
                    .setIcon(R.drawable.ic_action_search)
                    .setActionView(searchView)
                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM|MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
             searchView.expandActionView();
             ...