搜索框的作用是快速查找到需要的内容,当应用功能信息达到一定程度之后,搜索框就显得尤为重要。快速的查询可以增强用户的使用体验。

MaterialSearchView

基于Google Material Design风格的搜索框,支持语音搜索,搜索信息提示等。

  • 演示效果

SearchView - 图1

  • 使用案例
  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. }
  10. @Override
  11. public boolean onQueryTextChange(String newText) {
  12. //Do some magic
  13. return false;
  14. }
  15. });
  16. mSearchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
  17. @Override
  18. public void onSearchViewShown() {
  19. //Do some magic
  20. }
  21. @Override
  22. public void onSearchViewClosed() {
  23. //Do some magic
  24. }
  25. });
  26. mSearchView.setSubmitOnClick(true);
  • 属性表: (MaterialSearchView)
属性名类型默认值备注
msv_searchBackgroundinteger#50000000搜索框背景资源的id
msv_searchVoiceIconintegeric_action_voice_search语音按钮图标的资源id
msv_searchClearIconintegeric_action_navigation_close清空按钮图标的资源id
msv_searchBackIconintegeric_action_navigation_arrow_back返回按钮图标的资源id
msv_searchSuggestionIconintegeric_suggestion搜索提示图标的资源id
msv_searchSuggestionBackgroundinteger/搜索提示的背景资源的id
android:hintstringSearch搜索输入框提示信息
android:textColorcolor#212121搜索输入框文字颜色
android:textColorHintcolor#727272搜索输入框提示文字颜色
android:inputTypeenumEditorInfo.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)