android可折叠searchview与自定义标头

时间:2015-03-25 11:48:51

标签: android searchview collapsable custom-headers

我需要建议使用自定义标头显示searchview的最佳方式。

我的headerlayout应该最初看起来像这样

initial view

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

after clicking search icon

在这种状态下按下,应该直接进入初始状态。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您想自定义SearchView还是标准的适合您? 如果是,我建议使用ActionBar

查看ActionView

Android ActionBar documentation关于添加ActionView

答案 1 :(得分: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);
    }