实例效果图:
主要代码:(使用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();