Android点击EditText文本框之外任何地方隐藏键盘的解决办法

Android 实现点击输入框以外的区域隐藏软键盘 效果图如下: 代码实现如下: 首先创建一个工具类InputMethodUtil public class InputMethodUtil { //隐藏软键盘 public static boolean hideInputMethod(Activity activity, View view) { InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METH 阅读详情

1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏

[java]  view plain  copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:id="@+id/traceroute_rootview"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:background="@color/white"  
  6.     android:clickable="true"  
  7.     android:gravity="center_horizontal"  
  8.     android:orientation="vertical" >  
  9.   
  10. </LinearLayout>  
加上id和clickable=true

然后在onCreate里,添加onClick事件的监听:

[java]  view plain  copy
  1. findViewById(R.id.traceroute_rootview).setOnClickListener(this);  
在onClick中:

[java]  view plain  copy
  1. @Override  
  2. public void onClick(View v) {  
  3.     switch (v.getId()) {  
  4.     case R.id.traceroute_rootview:  
  5.          InputMethodManager imm = (InputMethodManager)  
  6.          getSystemService(Context.INPUT_METHOD_SERVICE);  
  7.          imm.hideSoftInputFromWindow(v.getWindowToken(), 0);  
  8.         break;  
  9.     }  
  10.   
  11. }  

这样就可以完美的解决了输入框外的隐藏效果,对于布局不是特别复杂或是其它触摸事件少的情况下可以使用。


2,实现思路二:通过dispatchTouchEvent每次ACTION_DOWN事件中动态判断非EditText本身区域的点击事件,然后在事件中进行屏蔽。

[java]  view plain  copy
  1. @Override  
  2. public boolean dispatchTouchEvent(MotionEvent ev) {  
  3.     if (ev.getAction() == MotionEvent.ACTION_DOWN) {  
  4.         View v = getCurrentFocus();  
  5.         if (isShouldHideInput(v, ev)) {  
  6.   
  7.             InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
  8.             if (imm != null) {  
  9.                 imm.hideSoftInputFromWindow(v.getWindowToken(), 0);  
  10.             }  
  11.         }  
  12.         return super.dispatchTouchEvent(ev);  
  13.     }  
  14.     // 必不可少,否则所有的组件都不会有TouchEvent了  
  15.     if (getWindow().superDispatchTouchEvent(ev)) {  
  16.         return true;  
  17.     }  
  18.     return onTouchEvent(ev);  
  19. }  

isShoudHideInput(View v,MotionEvent e)方法:

[java]  view plain  copy
  1. public  boolean isShouldHideInput(View v, MotionEvent event) {  
  2.     if (v != null && (v instanceof EditText)) {  
  3.         int[] leftTop = { 0, 0 };  
  4.         //获取输入框当前的location位置  
  5.         v.getLocationInWindow(leftTop);  
  6.         int left = leftTop[0];  
  7.         int top = leftTop[1];  
  8.         int bottom = top + v.getHeight();  
  9.         int right = left + v.getWidth();  
  10.         if (event.getX() > left && event.getX() < right  
  11.                 && event.getY() > top && event.getY() < bottom) {  
  12.             // 点击的是输入框区域,保留点击EditText的事件  
  13.             return false;  
  14.         } else {  
  15.             return true;  
  16.         }  
  17.     }  
  18.     return false;  
  19. }  
这种方法实现起来比较麻烦,解决思路与iOS中的事件分发机制是类似,对于处理隐藏事件比较清晰,通过层层事件分发,然后判断是否在需要屏蔽的区域。
PHM2010刀具磨损预测完整实现 本文介绍了PHM2010刀具磨损预测项目的完整实现方案。项目采用PHM2010公开数据集,包含6个子数据集,记录了铣削加工过程中7个通道的传感器数据(切削力、振动和声发射信号)。技术路线包括数据预处理(截取中间10万点、小波降噪)、特征提取(时域9个、频域4个特征)、特征融合和皮尔逊相关系数筛选,最终使用BiLSTM模型进行训练和评估。环境配置基于Python 3.9,依赖NumPy、Pandas、PyTorch等库。数据加载和预处理阶段重点处理了传感器信号分段和磨损标签对齐问题,为后续建模奠定基础。 阅读详情

相关推荐

别再只当代码阅读器了!手把手教你用Understand的实体定位器和信息浏览器,5分钟精准定位代码逻辑

本文深入解析Understand代码分析工具的高级功能,重点介绍实体定位器和信息浏览器的实战应用。通过5分钟快速定位代码逻辑的技巧,帮助开发者从代码阅读者升级为逻辑侦探,提升大型代码库的分析效率。文章包含过滤搜索、调用链追踪等实用方法,是掌握Understand核心功能的必备指南。

weixin_28745821的博客 293

点击EditText文本框之外任何地方隐藏键盘的解决办法

原文地址 ;http://blog.youkuaiyun.com/mad1989/article/details/25069821 1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 [java] view plaincopy "http://schemas.

Barving的专栏 651

SAP Business One自定义表与字段实战:从零构建企业专属数据模型

本文详细介绍了如何在SAP Business One中创建自定义表与字段,从零构建企业专属数据模型。通过实战案例和避坑指南,帮助用户掌握业务适配、流程优化和权限隔离等关键技巧,提升系统灵活性和数据管理效率。特别适合需要扩展标准功能的SAP Business One用户。

weixin_28730927的博客 363

android+点击屏幕隐藏键盘,Android点击EditText文本框之外任何地方隐藏键盘的解决办法...

1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏android:id="@+id/traceroute_rootview"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@color/w...

weixin_39983051的博客 426

【国民技术N32项目移植】基于 Windows 的 ARM GCC 开发环境

【国民技术N32项目移植】基于 Windows 的 ARM GCC 开发环境

weixin_42150032的博客 1366

BCIC IV 2a数据集:从下载到实战应用全解析

本文全面解析了BCI Competition IV 2a(BCIC IV 2a)数据集的应用流程。从官方渠道下载数据、解析其结构,到在MATLAB和Python环境中进行数据导入、预处理(包括处理特殊受试者A04T),并详细演示了从特征提取(如CSP)到分类(如LDA、SVM)的完整实战步骤,为脑机接口研究者提供了从入门到实践的清晰指南。

weixin_28235513的博客 975

android 模拟点击输入法,Android 点击editview以外位置实现隐藏输入法

Android 点击editview以外位置实现隐藏输入法发布时间:2020-08-30 12:47:07来源:脚本之家阅读:138作者:lqhAndroid 点击editview以外位置实现隐藏输入法实现代码:@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent....

weixin_29137997的博客 227

电力市场小白必看:手把手教你用Matlab实现市场出清电价计算(附完整代码)

本文为电力市场初学者提供了使用Matlab计算市场出清电价的完整指南。通过Yalmip和Matpower工具包,详细讲解了从环境配置到模型构建、求解及结果分析的整个过程,帮助读者快速掌握节点电价计算的核心技术。

weixin_30379531的博客 74

EditText点击弹出键盘,点击外部使其键盘消失并去除光标

只需要在Activity添加 @Override public boolean dispatchTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus(); if (v instanceof EditText) { Rect outRect = new Rect();

ZhangXuxiaoqingnian的博客 586

AHB不对称半桥反激电路设计(一)变换器拓扑工作原理详解

本文详细分析了AHB(不对称半桥)反激变换器拓扑的工作原理及关键优势。该拓扑通过谐振腔结构实现原边功率管的零电压开通(ZVS)和副边整流管的零电流关断(ZCS),显著提升效率至95%以上。文章阐述了6个工作阶段的时序特征,包括谐振电感电流和电容电压的数学模型推导。AHB拓扑具有漏感能量回收、宽电压输出(适配PD快充等场景)和协同储能等优势,相比传统方案可缩小变压器体积30%,成为100-300W隔离电源的理想选择。

【Simon】的博客 7173

32位ALU设计(verilog实现)

32位ALU设计 ​ 算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU。算术逻辑单元是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"And Gate"(与门) 和"Or Gate"(或门)构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。基本上,在所有现代CPU体系结构中,二进制都以补码的形式来表示。 设计思路 设计实现 仿真测试 文章目录32位ALU设计一、设计

Destiny的博客 4万+

android点击edittext文本框之外任何地方隐藏键盘,Android点击EditText文本框之外任何地方隐藏键盘的解决办法...

1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏加上id和clickable=true然后在onCreate里,添加onClick事件的监听:@Override public void onClick(View v) { switch (v.getId()) { case R.id.trace...

weixin_31437695的博客 329

深度篇——图像处理的一些方法(一) 关于 图像处理的三个层次 与 selective search

返回主目录 返回 图像处理的一些方法 目录 下一章:深度篇——图像处理的一些方法(二)细说性能评估 IOU和 GIOU 目录内容 深度篇——图像处理的一些方法(一)关于图像处理的三个层次 与 selective search 深度篇——图像处理的一些方法(二)细说性能评估 IOU和 GIOU 深度篇——图像处理的一些方法(三)细说 HOG特征与bag-o...

天下所弃,不过其纪。世间事,在人,在志。 2917

Android—Android点击EditText文本框之外任何地方隐藏键盘的解决办法

1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 [java] view plaincopy "http://schemas.android.com/apk/res/android"       android:id="@+id/traceroute_rootv

weiguishan的专栏 445

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 点击文本框 不调用键盘,Android点击EditText文本框之外任何地方隐藏键盘的解决办法...

1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏android:id="@+id/traceroute_rootview"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@color/w...

weixin_28689729的博客 398

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android点击EditText文本框之外任何地方隐藏键盘及光标的解决办法

为了体验便捷一些,今天想实现店家Edittext意外的区域使弹出的键盘消失,经过查找,大致有俩种方法可以采用,都是采用点击edittext意外的区域,键盘消失,但这俩种又有很大区别。 第一种: InputMethodManager imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); @...

易小四的博客 5063

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: java编译原理2
下一篇: Android Studio项目将Module依赖(lib)转成jar包
一靥知秋
博客等级 码龄10年 3粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值