SearchView这个控件是经常用到的,用法也比较简单。
最简单的SearchView代码如下:
<SearchView
android:id="@+id/searchview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#AEDEE6"/>
如图:
164.gif为了方便显示,我添加了背景色,上图中,SearchView的起初只有一个搜索小图标,点击左侧的搜索小图标之后开始显示编辑框,编辑框右边还有一个叉,输入任意文本,点击右侧的叉,删除文本,再次点击右侧的叉,SearchView恢复初始状态。
(1)iconifiedByDefault的使用
iconifiedByDefault值默认是true,当设置为false时,SearchView的初始状态变为:
图片.png代码如下:
android:iconifiedByDefault="false"
或
searchview.setIconifiedByDefault(false);
(2)imeOptions属性
imeOptions属性是EditText特有的属性,查看源码可以知道,SearchView中显示的编辑框其实就是SearchAutoComplete,SearchAutoComplete是EditText的间接子类,SearchAutoComplete的imeOptions默认值是actionSearch
。
(3)queryHint属性
queryHint:设置提示文字
图片.png代码实现如下:
android:queryHint="提示文字"
或
searchview.setQueryHint("提示文字");
(4)监听
-
搜索编辑框进入编辑状态时的监听
searchview.setOnSearchClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //当点击搜索编辑框的时候执行,刚进入时默认点击搜索编辑框 } });
-
点击软键盘搜索按钮时的监听以及搜索编辑框文本变化时的监听
searchview.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { //点击软键盘搜索的时候执行 return false; } @Override public boolean onQueryTextChange(String s) { //搜索框文本发生改变的时候执行 return false; } });
*编辑框获取焦点和失去焦点时的监听
searchview.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
//当得到焦点和失去焦点的时候执行
}
});
[本章完...]
网友评论