SearchView使用

作者: NoBugException | 来源:发表于2019-08-22 18:11 被阅读0次

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) {
            //当得到焦点和失去焦点的时候执行
        }
    });

[本章完...]

相关文章

网友评论

    本文标题:SearchView使用

    本文链接:https://www.haomeiwen.com/subject/eqgpsctx.html