当前位置: 代码迷 >> 综合 >> SearchView 的使用,searchViw 的显示方式,文本改变等监听的实现
  详细解决方案

SearchView 的使用,searchViw 的显示方式,文本改变等监听的实现

热度:35   发布时间:2023-12-16 06:01:25.0
实例效果图:

在这里插入图片描述

主要代码:(使用v7 包)

activity_main.xml

        <android.support.v7.widget.SearchViewandroid:id="@+id/searchView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:autofillHints="查找" />

MainActivity.java

	SearchView searchView;
// 获取搜索框searchView = findViewById(R.id.searchView);
// 搜索框的一些方法设置
// 1. 文本事件 {包括提交事件,文本改变事件}searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {@Overridepublic boolean onQueryTextSubmit(String s) {  // 点击软件盘搜索按钮会弹出 吐司Toast.makeText(MainActivity.this, "提交", Toast.LENGTH_SHORT).show();return false;}// 搜索框文本改变事件@Overridepublic boolean onQueryTextChange(String s) {// 文本内容是空就让 recyclerView 填充全部数据 // 可以是其他容器 如listViewif (TextUtils.isEmpty(s)) {  // 文本工具 检测是否为空,检测空,是输入文本改变 并且为空时触发,刚点击时候虽然为空,但是文本内容没有改变// 设置 容器 的更新}return false;}});
// 2. 设置 hint 文字searchView.setQueryHint("匹配任意标题和内容");
// 3. 设置点击 关闭 叉叉 的监听事件searchView.setOnClickListener();
//设置最大宽度searchView.setMaxWidth(500);
//设置是否显示搜索框展开时的提交按钮 ,就是一个 > searchView.setSubmitButtonEnabled(true); 

SearchView有三种默认展开搜索框的设置方式,区别如下:

/*------------------  ------------------*/
//设置搜索框直接展开显示。左侧有放大镜(在搜索框中) 右侧有叉叉 可以关闭搜索框
searchView.setIconified(false);
//设置搜索框直接展开显示。左侧有放大镜(在搜索框外) 右侧无叉叉 有输入内容后有叉叉 不能关闭搜索框
searchView.setIconifiedByDefault(false);
//设置搜索框直接展开显示。左侧有无放大镜(在搜索框中) 右侧无叉叉 有输入内容后有叉叉 不能关闭搜索框
searchView.onActionViewExpanded();
总结 ,自定义 搜索框才是正道

MaterialDesign之SearchView全面解锁
官方文档