我需要使用最佳方式显示带有自定义标题的搜索视图的建议。
我的 headerlayout 最初应该是这样的
并且点击标题右侧的搜索按钮后,必须像这样用搜索输入字段替换标题标题和菜单图标部分。
在这种状态下压回,应该直接回到初始状态。
我怎样才能做到这一点?
我需要使用最佳方式显示带有自定义标题的搜索视图的建议。
我的 headerlayout 最初应该是这样的
并且点击标题右侧的搜索按钮后,必须像这样用搜索输入字段替换标题标题和菜单图标部分。
在这种状态下压回,应该直接回到初始状态。
我怎样才能做到这一点?
在菜单资源目录
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);
}
你想定制SearchView
或者是一个标准的罚款吗?如果是,我建议ActionBar
使用ActionView
关于添加 ActionView 的Android ActionBar 文档