正文
我们在很多app上面都可以发现标题栏上有一个搜索按钮,点击之后会自动展开,我们就可以搜索,这个是怎么实现呢,我们可以自定义去实现,不过可能会有点困难,还好,Android有一个原生控件,那就是SearchView,我们可以将它集成在Toolbar上使用,下面我们就来看看如何在Toolbar上集成SearchView
创建菜单
Toolbar上集成SearchView我们需要将SearchView当成是一个菜单来看待,所有我们先来创建一个menu
menu_toolbar_search_view.xml
xmlns:app="http://schemas.android.com/apk/res-auto">
android:id="@+id/menu_search_view"
android:title="Search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always"/>
创建完成后我们就可以在代码中使用
代码调用
我们在Activity的onCreateOptionsMenu方法中去初始化
private SearchView mSearchView;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_toolbar_search_view, menu);
initSearch(menu);
return true;
}
/**
* 初始化搜索框
* @param menu
*/
private void initSearch(Menu menu) {
MenuItem searchItem = menu.findItem(R.id.menu_search_view);
mSearchView = (SearchView) searchItem.getActionView();
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return true;
}
@Override
public boolean onQueryTextChange(String s) {
return true;
}
});
}
可以看到,我们在onCreateOptionsMenu中先是通过id获取到SearchView初始化了SearchView,并为其绑定了事件
onQueryTextSubmit:输入完毕后点击搜索按钮事件
onQueryTextChange:搜索框变化监听事件
好了,今天的内容就到这里。