Android 点击屏幕空白处收起输入法软键盘(手动打开)

发布时间 - 2026-01-10 21:57:08    点击率:

很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏。为了更好的体验,我们可以实现当用户使用完毕软键盘时。点击屏幕空白区域即可实现收起输入法软键盘功能。下面给大家介绍下实现方法。

1、//隐藏软键盘  

 在Java文件:

InputMethodManager m = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
  m .hideSoftInputFromWindow(xxxx.getWindowToken(), 0);//比如EditView

或者是:

在Manifest.xml的activity中写上:Android:windowSoftInputMode="stateHidden表示打开activity隐藏输入法。

2、//显示软键盘,控件ID可以是EditText,TextView  

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(控件ID, 0); 

3、不自动弹出键盘:

最理想的实现方式:

public class HomeActivity extends Activity { 
 ...... 
 @Override 
 public boolean dispatchTouchEvent(MotionEvent ev) { 
 if (ev.getAction() == MotionEvent.ACTION_DOWN) { 
  // 获得当前得到焦点的View,一般情况下就是EditText(特殊情况就是轨迹求或者实体案件会移动焦点) 
  View v = getCurrentFocus(); 
  if (isShouldHideInput(v, ev)) { 
  hideSoftInput(v.getWindowToken()); 
  } 
 } 
 return super.dispatchTouchEvent(ev); 
 } 
 /** 
 * 根据EditText所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘,因为当用户点击EditText时没必要隐藏 
 * 
 * @param v 
 * @param event 
 * @return 
 */ 
 private boolean isShouldHideInput(View v, MotionEvent event) { 
 if (v != null && (v instanceof EditText)) { 
  int[] l = { 0, 0 }; 
  v.getLocationInWindow(l); 
  int left = l[0], top = l[1], bottom = top + v.getHeight(), right = left 
   + v.getWidth(); 
  if (event.getX() > left && event.getX() < right 
   && event.getY() > top && event.getY() < bottom) { 
  // 点击EditText的事件,忽略它。 
  return false; 
  } else { 
  return true; 
  } 
 } 
 // 如果焦点不是EditText则忽略,这个发生在视图刚绘制完,第一个焦点不在EditView上,和用户用轨迹球选择其他的焦点 
 return false; 
 } 
 /** 
 * 多种隐藏软件盘方法的其中一种 
 * 
 * @param token 
 */ 
 private void hideSoftInput(IBinder token) { 
 if (token != null) { 
  InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
  im.hideSoftInputFromWindow(token, 
   InputMethodManager.HIDE_NOT_ALWAYS); 
 } 
 } 
 ...... 
} 

以上所述是小编给大家介绍的Android 点击屏幕空白处收起输入法软键盘(手动打开),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android收起软键盘  # android  # 软键盘  # Android 软键盘状态并隐藏输入法的实例  # Android自定义输入法软键盘  # 给大家  # 小编  # 第一个  # 在此  # 其他的  # 弹出  # 或者是  # 可以实现  # 会使  # 没必要  # 所述  # 写上  # 给我留言  # 为了更好  # 感谢大家  # 判断是否  # 疑问请  # 空白处  # 有任何  # 情况下 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  javascript基本数据类型及类型检测常用方法小结  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  如何在万网ECS上快速搭建专属网站?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  js实现获取鼠标当前的位置  如何在宝塔面板创建新站点?  高端云建站费用究竟需要多少预算?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  活动邀请函制作网站有哪些,活动邀请函文案?  手机网站制作与建设方案,手机网站如何建设?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  WEB开发之注册页面验证码倒计时代码的实现  C语言设计一个闪闪的圣诞树  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何为不同团队 ID 动态生成多个独立按钮  javascript日期怎么处理_如何格式化输出  如何在万网主机上快速搭建网站?  Java遍历集合的三种方式  Laravel如何处理表单验证?(Requests代码示例)  如何选择可靠的免备案建站服务器?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel定时任务怎么设置_Laravel Crontab调度器配置  如何获取上海专业网站定制建站电话?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Laravel Session怎么存储_Laravel Session驱动配置详解  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  高防服务器租用指南:配置选择与快速部署攻略  如何自定义建站之星模板颜色并下载新样式?  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Angular 表单中正确绑定输入值以确保提交与验证正常工作  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何续费美橙建站之星域名及服务?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  高端企业智能建站程序:SEO优化与响应式模板定制开发  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?