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

 更新时间:2016年12月20日 09:29:56   作者:huaxaY  
很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏。为了更好的体验,我们可以实现当用户使用完毕软键盘时。点击屏幕空白即可实现收起输入法软键盘

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

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 获取IP和UA实现示例详解

    Android 获取IP和UA实现示例详解

    这篇文章主要为大家介绍了Android 获取IP和UA实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • android实现静默安装与卸载的方法

    android实现静默安装与卸载的方法

    这篇文章主要介绍了android实现静默安装与卸载的方法,涉及Android权限与命令行操作的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Android实现一个简易的带边输入框

    Android实现一个简易的带边输入框

    如今市面上APP的输入框可以说是千奇百怪,不搞点花样出来貌似代表格局没打开,还在使用系统自带的输入框的兄弟可以停下脚步,哥带你实现一个简易的带边框输入框,感兴趣的同学可以自己动手试一下
    2023-08-08
  • Android使用AudioRecord判断是否有音频输入

    Android使用AudioRecord判断是否有音频输入

    这篇文章主要介绍了Android使用AudioRecord判断是否有音频输入的实例代码,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-01-01
  • Android自定义videoview仿抖音界面

    Android自定义videoview仿抖音界面

    这篇文章主要为大家详细介绍了Android自定义videoview仿抖音界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Android编程实现PendingIntent控制多个闹钟的方法

    Android编程实现PendingIntent控制多个闹钟的方法

    这篇文章主要介绍了Android编程实现PendingIntent控制多个闹钟的方法,涉及PendingIntent属性设置与使用的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • Android实现手势滑动(左滑和右滑)

    Android实现手势滑动(左滑和右滑)

    这篇文章主要为大家详细介绍了Android实现手势滑动,左滑和右滑效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • Android App中的多个LinearLayout嵌套布局实例解析

    Android App中的多个LinearLayout嵌套布局实例解析

    这篇文章主要介绍了Android App中的多个LinearLayout嵌套布局实例,利用线性布局来排列按钮是安卓应用布局中的常用做法,需要的朋友可以参考下
    2016-04-04
  • Android编程自定义组件实例详解

    Android编程自定义组件实例详解

    这篇文章主要介绍了Android自定义组件,结合实例形式分析了Android自定义组件的原理、实现方法及相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • Android ListView万能适配器实例代码

    Android ListView万能适配器实例代码

    本文主要介绍Android ListView万能适配器,这里整理了详细的资料及实现代码,以及实现效果图,有需要的小伙伴可以参考下
    2016-09-09

最新评论