SearchView的全面解析

立即下载

金额: 2 元

支付方式:

友情提醒:源码购买后不支持退换货

立即支付

发布时间:2018-02-09

概述

searchView知识的全面讲解,知道这一篇就够了

详细

###前言

今天来讲讲searchView的使用,这里讲的searchView是引用android.support.v7.widget.SearchView 下的搜索

主要包括以下知识点:

1. SearchView 的基本属性

2. SearchView的基本使用

3. SearchView结合Menu的使用

###一.SearchView的基本属性

demo中涉及一些SearchView的常用属性的使用,下面用一张图表示:

![](/contentImages/image/20180209/O3tgGIyocqlisoBlimp.png)

### 二.项目结构图

![](/contentImages/image/20180209/ZuwyqkGCsmZ1iQo5HET.png)

其中MainActivity中是讲的SearchView的基本使用,

NextActivity讲的是结合Menu的使用

SearchView设置属性范例如下:

```

mSearchView.setIconifiedByDefault(false);//设置搜索图标是否显示在搜索框内

//1:回车

//2:前往

//3:搜索

//4:发送

//5:下一項

//6:完成

mSearchView.setImeOptions(2);//设置输入法搜索选项字段,默认是搜索,可以是:下一页、发送、完成等

// mSearchView.setInputType(1);//设置输入类型

// mSearchView.setMaxWidth(200);//设置最大宽度

mSearchView.setQueryHint("ahdewoi");//设置查询提示字符串

// mSearchView.setSubmitButtonEnabled(true);//设置是否显示搜索框展开时的提交按钮

//设置SearchView下划线透明

setUnderLinetransparent(mSearchView);

```

SearchView的基本使用在MainActivity代码中已经解释的很清楚了,下面具体讲讲SearchView 结合Menu的使用

#### 三.SearchView结合Menu的使用

这里涉及到Menu的使用与Toobar的结合使用,下面分步讲解

#####3.1 新建Menu文件夹

选中res文件夹---->右键---->New----->Android resouce directory----->Resouce Type选下拉列表中的menu,点击ok,就在res文件夹下新建了menu文件夹,动图如下:

![](/contentImages/image/20180209/vjv8bvMcjJOWU6DFxav.gif)

#####3.2 在Menu文件夹下建search_view.xml

这里需要注意的是SearchView控件的布控是通过item中的

app:actionViewClass="android.support.v7.widget.SearchView" 实现的代码如下:

```

```

#####3.3 SearchView在NextActivity中代码需要注意的点

1. SearchView对象是通过重写AppCompatActivity的onCreateOptionsMenu(Menu menu)方法实现的

获取SearchView对象范例如下:

```

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.search_view, menu);

MenuItem searchItem = menu.findItem(R.id.menu_search);

//通过MenuItem得到SearchView

mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);

//设置最大宽度

// mSearchView.setMaxWidth();

//设置是否显示搜索框展开时的提交按钮

mSearchView.setSubmitButtonEnabled(true);

//设置输入框提示语

mSearchView.setQueryHint("hint");

//SearchView设置监听

setMenuListener();

return super.onCreateOptionsMenu(menu);

}

```

2.toobar代替menu布局setSupportActionBar(toolbar);

设置类似下面这样:

```

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_next);

initView();

initData();

setListener();

}

private void initView(){

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

}

```

当然,demo中还涉及到SearchView输入监听,关闭,打开的监听事件,设置监听需要在onCreate(Bundle savedInstanceState) 方法中调用setMenuListener();方法,setMenuListener()代码如下:

```

/**SearchView设置监听**/

private void setMenuListener(){

//搜索框展开时后面叉叉按钮的点击事件

mSearchView.setOnCloseListener(new SearchView.OnCloseListener() {

@Override

public boolean onClose() {

showShortToast("Close:关闭");

return false;

}

});

//搜索图标按钮(打开搜索框的按钮)的点击事件

mSearchView.setOnSearchClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

showShortToast("Open:打开");

}

});

//搜索框文字变化监听

mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

@Override

public boolean onQueryTextSubmit(String s) {

LogUtil.e(NextActivity.class, "TextSubmit : " + s);

showShortToast("搜索了:"+s);

return false;

}

@Override

public boolean onQueryTextChange(String s) {

LogUtil.e(NextActivity.class, "TextChange --> " + s);

return false;

}

});

}

```

具体代码大家可以看demo

#### 四.SearchView运行效果图

![](/contentImages/image/20180209/bbxlitNaN26pjHXgztM.gif)

android searchview属性,SearchView的全面解析相关推荐

  1. android searchview属性,SearchView的用法(一)

    前言 今天来讲讲searchView的使用,这里讲的searchView是引用android.support.v7.widget.SearchView 下的搜索. 本篇文章借鉴以下链接,在此表示感谢 ...

  2. android 低版本 searchview,Android SearchView 使用示例

    布局文件: android:layout_width="match_parent" android:layout_height="match_parent" a ...

  3. 【Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . TextView 相关类的继承结构 ...

  4. android gravity 属性解析

    1.首先来看看xml文件中 android:layout_gravity和android:gravity的使用区别. android:gravity: 这个是针对控件里的元素来说的,用来控制元素在该控 ...

  5. Android menu属性详解

    转自:http://blog.csdn.net/n3562141/article/details/50325717 menu的属性展示 <?xml version="1.0" ...

  6. Android View 测量流程(Measure)完全解析

    前言 上一篇文章,笔者主要讲述了DecorView以及ViewRootImpl相关的作用,这里回顾一下上一章所说的内容:DecorView是视图的顶级View,我们添加的布局文件是它的一个子布局,而V ...

  7. 使用Java代码在应用层获取Android系统属性

    之前使用Native代码的property_get()/property_set()来获取Android系统属性,现在需要改写到Java上面, 但是System.getProperty() / Sys ...

  8. Android --- allowBackup 属性的含义和危险性实例讲解

    一.前言 今天在开发的过程中遇到一个问题,就是关于AndroidManifest.xml中的allowBackup属性,也算是自己之前对这个属性的不了解,加上IDE的自动生成代码,没太注意这个属性,但 ...

  9. android permission权限与安全机制解析(上)

    目录(?)[-] uses-permission 自定义permission permission标签 permission-tree标签 permission-group标签 安全机制 组件权限 权 ...

最新文章

  1. 下列不属于计算机图形学的应用的是,《数字图形设计》题目与答案3
  2. 57、Design Support Library 介绍及环境搭建
  3. 服务器维护家电需要电工证吗,物业电工需要电工证吗
  4. JSP九大内置对象的分析,对应SERVLET中如何获取、使用
  5. 27. 面向对象程序设计(2)
  6. 活动目录父子域用户迁移之:TFSSharePoint问题汇总(一)
  7. ug链轮设计软件_教你怎么用UG做链轮教程【UG爱好者首发】
  8. javascript-cropper插件翻译笔记
  9. 交互式绘图软件源码开发,简单好用功能强大的绘图工具
  10. Java中创建一个类的所有方式
  11. python判断性别_惊呆|根据三围数据判断出用户性别竟是python使用逻辑回归算法搞的鬼!...
  12. Nginx配置基础-proxy_pass
  13. hwclock -w的应用
  14. scala中 sorted,sortBy,sortWith语法使用
  15. redis C接口hiredis 简单函数使用介绍
  16. 惠普电脑u盘重装系统步骤_惠普笔记本u盘重装系统|惠普笔记本怎么用u盘重装系统...
  17. 搭建私服环境及私服的使用-将第三方jar上传私服
  18. C文件访问 introduce
  19. 3.1.5 操作系统之动态分区分配的四种算法(首次适应算法、最佳适应算法、最坏适应算法、临近适应算法)
  20. Spring框架02(IOC和DI)

热门文章

  1. Java字节码指令大全
  2. 【数理统计】矩母函数
  3. Spark一路火花带闪电——认识Spark
  4. Canvas学习记录之drawImage
  5. Ubuntu上Pulse Secure不能用 openconnect来救急~
  6. 汇编:寄存器/register,基础概念
  7. idea使用tomcat总结,catalina_home与catalina_base?logging.properties?
  8. bcnf分解算法_BCNF题解
  9. 查看手机安卓版本,手机品牌:
  10. Android中zip,tar.gz压缩与解压缩