搜索框的作用是快速查找到需要的内容,当应用功能信息达到一定程度之后,搜索框就显得尤为重要。快速的查询可以增强用户的使用体验。
MaterialSearchView
基于Google Material Design风格的搜索框,支持语音搜索,搜索信息提示等。
- 演示效果

- 使用案例
1. mSearchView.setVoiceSearch(false);
2. mSearchView.setEllipsize(true);
3. mSearchView.setSuggestions(getResources().getStringArray(R.array.query_suggestions));
4. mSearchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
5. @Override
6. public boolean onQueryTextSubmit(String query) {
7. SnackbarUtils.Long(mSearchView, "Query: " + query).show();
8. return false;
9. }
11. @Override
12. public boolean onQueryTextChange(String newText) {
13. //Do some magic
14. return false;
15. }
16. });
17. mSearchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
18. @Override
19. public void onSearchViewShown() {
20. //Do some magic
21. }
23. @Override
24. public void onSearchViewClosed() {
25. //Do some magic
26. }
27. });
28. mSearchView.setSubmitOnClick(true);
- 属性表: (MaterialSearchView)
| 属性名 | 类型 | 默认值 | 备注 |
|---|---|---|---|
| msv_searchBackground | integer | #50000000 | 搜索框背景资源的id |
| msv_searchVoiceIcon | integer | ic_action_voice_search | 语音按钮图标的资源id |
| msv_searchClearIcon | integer | ic_action_navigation_close | 清空按钮图标的资源id |
| msv_searchBackIcon | integer | ic_action_navigation_arrow_back | 返回按钮图标的资源id |
| msv_searchSuggestionIcon | integer | ic_suggestion | 搜索提示图标的资源id |
| msv_searchSuggestionBackground | integer | / | 搜索提示的背景资源的id |
| android:hint | string | Search | 搜索输入框提示信息 |
| android:textColor | color | #212121 | 搜索输入框文字颜色 |
| android:textColorHint | color | #727272 | 搜索输入框提示文字颜色 |
| android:inputType | enum | EditorInfo.TYPE_NULL | 搜索输入框输入的类型 |
常用方法
- 设置搜索提示信息集合: setSuggestions(String[] suggestions)
- 设置提示信息集合的适配器:setAdapter(ListAdapter adapter)
- 设置是否允许语音搜索:setVoiceSearch(boolean voiceSearch)
- 设置查询监听:setOnQueryTextListener(OnQueryTextListener listener)
- 设置搜索框打开关闭监听:setOnSearchViewListener(SearchViewListener listener)
- 设置是否点击条目后直接进行查询:setSubmitOnClick(boolean submit)
- 显示搜索框:showSearch()
- 关闭搜索框:closeSearch()
- 加入到菜单中:setMenuItem(MenuItem menuItem)
