步骤:
1、依赖: compile ‘com.miguelcatalan:materialsearchview:1.4.0’
2、mxl文件中:
<FrameLayout
android:id="@+id/toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/theme_primary" />
<com.miguelcatalan.materialsearchview.MaterialSearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout>
3、·menu文件中:
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_action_search"
android:orderInCategory="100"
android:title="@string/abc_search_hint"
app:showAsAction="always" />
4、Activity文件·
mSearchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//提交搜索内容时的监听
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
//文本发生改变的监听
return false;
}
});
mSearchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
@Override
public void onSearchViewShown() {
//搜索框展开
Toast.makeText(MainActivity.this, "展开", Toast.LENGTH_SHORT).show();
}
@Override
public void onSearchViewClosed() {
//搜索框关闭
Toast.makeText(MainActivity.this, "关闭", Toast.LENGTH_SHORT).show();
}
});
//显示提示信息
mSearchView.setSuggestions(getResources().getStringArray(R.array.query_suggestions));
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu1, menu);
mSearchItem = menu.findItem(R.id.action_seach);
mSearchItem.setVisible(false);
mSearchView.setMenuItem(mSearchItem);
return true;
}
/**
* 那回退键会调用这个方法
*/
@Override
public void onBackPressed() {
if (mSearchView.isSearchOpen()){
mSearchView.closeSearch();
}else {
super.onBackPressed();
}
}