1.添加依賴
implementation 'com.miguelcatalan:materialsearchview:1.4.0'
2.布局
<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="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:titleTextColor="@color/white"></android.support.v7.widget.Toolbar>
<com.miguelcatalan.materialsearchview.MaterialSearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout>
3.創(chuàng)建選項菜單以及解綁
@Override
public void onBackPressed() {
if (mSearchView.isSearchOpen()) {
mSearchView.closeSearch();
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.item, menu);
mSearchViewItem = menu.findItem(R.id.action_search);
//隱藏menu,搜索框就不見了,想要搜索框不見只能使用mSearchViewItem
mSearchViewItem.setVisible(false);
mSearchView.setMenuItem(mSearchViewItem);
return super.onCreateOptionsMenu(menu);
}
4.獲取控件結(jié)束后監(jiān)聽事件
MaterialSearchView mSearchView = (MaterialSearchView) findViewById(R.id.search_view);
mSearchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//Do some magic
//點擊搜索按鈕提交搜索的內(nèi)容
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
//Do some magic
//搜索框中內(nèi)容發(fā)生改變
return false;
}
});
mSearchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
@Override
public void onSearchViewShown() {
//Do some magic
//搜索框展開
}
@Override
public void onSearchViewClosed() {
//Do some magic
//搜索框折疊
}
});