Skip to content

SearchView

xuexiangjys edited this page Apr 26, 2022 · 6 revisions

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

MaterialSearchView

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

  • 演示效果

  • 使用案例
mSearchView.setVoiceSearch(false);
mSearchView.setEllipsize(true);
mSearchView.setSuggestions(getResources().getStringArray(R.array.query_suggestions));
mSearchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        SnackbarUtils.Long(mSearchView, "Query: " + query).show();
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        //Do some magic
        return false;
    }
});
mSearchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
    @Override
    public void onSearchViewShown() {
        //Do some magic
    }

    @Override
    public void onSearchViewClosed() {
        //Do some magic
    }
});
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)
Clone this wiki locally