-1

我需要使用最佳方式显示带有自定义标题的搜索视图的建议。

我的 headerlayout 最初应该是这样的

初步看法

并且点击标题右侧的搜索按钮后,必须像这样用搜索输入字段替换标题标题和菜单图标部分。

点击搜索图标后

在这种状态下压回,应该直接回到初始状态。

我怎样才能做到这一点?

4

2 回答 2

0

在菜单资源目录
search_country_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/abc_ic_search"
        app:showAsAction="always|collapseActionView"
        android:orderInCategory="0"
       app:actionViewClass="android.support.v7.widget.SearchView"/>

</menu>

**在Activity的onCreateOptionmenu方法中**

public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.search_country_menu, menu);
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        menu.findItem(R.id.action_search).expandActionView();
        searchView.setQueryHint(getResources().getString(R.string.select_country));
        searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);

        searchView.setOnQueryTextListener(new OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String arg0) {
                searchView.clearFocus();
                  return true;
            }
            @Override
            public boolean onQueryTextChange(String arg0) {
                etSearch.setText(arg0);
                return true;
            }
        });
        return super.onCreateOptionsMenu(menu);
    }
于 2015-03-25T12:37:45.740 回答
0

你想定制SearchView或者是一个标准的罚款吗?如果是,我建议ActionBar使用ActionView

关于添加 ActionView 的Android ActionBar 文档

于 2015-03-25T12:04:59.763 回答