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

实例效果图:

在这里插入图片描述

主要代码:(使用v7 包)

activity_main.xml

        <android.support.v7.widget.SearchView
            android: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() {
            @Override
            public boolean onQueryTextSubmit(String s) {  // 点击软件盘搜索按钮会弹出 吐司
                Toast.makeText(MainActivity.this, "提交", Toast.LENGTH_SHORT).show();
                return false;
            }
            // 搜索框文本改变事件
            @Override
            public boolean onQueryTextChange(String s) {
                // 文本内容是空就让 recyclerView 填充全部数据 // 可以是其他容器 如listView
                if (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全面解锁
官方文档

猜你喜欢

转载自blog.csdn.net/qq_38340601/article/details/82961076