`

android 点击空白出隐藏软键盘

 
阅读更多
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);
         }
     }
   ......
 }

 

分享到:
评论

相关推荐

    安卓点击空白区域和点击Editext以外的地方隐藏软键盘

    在Android开发中,用户界面的...通过以上步骤,我们就实现了在Android应用中,点击EditText以外的地方或屏幕空白区域自动隐藏软键盘的功能。这种方法可以提升用户体验,使得在有限的屏幕空间中更容易进行多任务操作。

    点击空白处隐藏软键盘

    本文将详细解析如何通过简单的代码实现在用户点击屏幕空白区域时隐藏软键盘的功能。 ### 知识点一:理解软键盘管理的重要性 在移动应用开发中,软键盘的管理对于提升用户体验至关重要。当用户在一个输入框内进行...

    点击空白区域隐藏软键盘

    标题"点击空白区域隐藏软键盘"所描述的技术解决方案就是针对这一需求而设计的。这种功能使得用户在不需要点击返回键或者特定关闭键盘的按钮时,只需点击屏幕空白区域,就能自动收起软键盘,从而提升用户体验和操作...

    Android Studio点击空白处收起软键盘

    Android Studio点击空白处收起软键盘 //点击空白区域隐藏键盘 @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus();...

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

    这段代码会在用户点击屏幕非EditText区域时隐藏软键盘,同时允许用户在EditText内进行正常输入。 总的来说,通过监听触摸事件并结合`InputMethodManager`服务,开发者可以在Android应用中实现用户友好的交互,使得...

    Android 中自定义Dialog样式的Activity点击空白处隐藏软键盘功能(dialog不消失)

    然而,一个常见的需求是在用户完成编辑后,点击Dialog之外的空白区域能够隐藏软键盘,但不关闭Dialog本身。以下是如何实现这一功能的详细步骤: 一、需求分析: 在某些应用中,比如用户填写表单或搜索框,我们希望...

    点击空白隐藏EditText软件盘

    当判断出用户点击了屏幕空白区域时,我们可以调用`InputMethodManager`来隐藏软键盘。首先,获取到InputMethodManager的实例,然后调用其`hideSoftInputFromWindow`方法,传入当前Activity的窗口Token和0作为参数,...

    android 点击空白区域,隐藏输入法

    标题"android 点击空白区域,隐藏输入法"和描述"android 点击空白区域,隐藏键盘"指的是在用户点击屏幕非输入框区域时,自动收起软键盘的行为。这通常用于提高用户体验,特别是在移动设备上,屏幕空间有限,隐藏不...

    Android编程实现点击EditText之外的控件隐藏软键盘功能

    Android 编程实现点击EditText之外的控件隐藏软键盘功能 Android 编程实现点击EditText之外的控件隐藏软键盘功能是 Android 开发中的一项常见需求。通过隐藏软键盘,可以提高用户体验,并减少用户的不必要操作。...

    Android 开发之Dialog中隐藏键盘的正确使用方法

    hideSoftInputFromWindow 方法是 InputMethodManager 中的一个方法,用于隐藏软键盘。该方法的参数中,windowToken 是当前输入框的 windowToken,flags 是隐藏软键盘的标志。 在 Dialog 中隐藏键盘时,需要在 ...

    安卓键盘输入相关-Android监听软键盘功能.rar

    或者,当用户点击屏幕空白区域时,可以自动隐藏软键盘。 总之,Android监听软键盘功能涉及到多种技术,开发者需要根据具体需求选择合适的方法。压缩包中的代码可能包含了实现这些功能的示例,可以作为学习和参考的...

    Flutter 全局点击空白处隐藏键盘实战

    iOS 和 Android 平台在处理软键盘显示和隐藏上有着不同的默认行为。在 iOS 上,用户习惯于点击屏幕空白区域来隐藏键盘,而在 Android 上,键盘通常会提供一个明显的关闭按钮。为了在 Flutter 应用中统一这种体验,...

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

    然而,有时我们希望用户在点击EditText之外的任何地方时能够自动隐藏软键盘,以提供更好的用户体验。本篇文章将介绍两种实现这一功能的方法。 ### 实现方法一:设置父布局点击事件 1. 首先,在布局文件中,为当前...

    Android-keyboard-dismisser一个实现点击任何键盘外的部分来取消键盘的Android库

    "Android-keyboard-dismisser" 是一个专为Android设计的库,旨在优化用户体验,通过允许用户点击键盘之外的任何区域来自动隐藏软键盘。这个库解决了在输入框激活时,用户可能遇到的因键盘遮挡屏幕其他部分而造成的...

    键盘遮挡空白返回

    在移动应用开发中,尤其是iOS和Android平台,经常会遇到一个问题:当用户在输入框中输入时,弹出的软键盘可能会遮挡住屏幕下方的部分内容,包括其他控件或按钮。这种情况给用户带来了不便,因为他们无法直接触达或...

    EditText输入法

    这可以通过重写`dispatchTouchEvent`方法,并在该方法中判断触摸事件是否发生在EditText之外,如果是,则隐藏软键盘。以下是实现这一功能的代码示例: ```java @Override public boolean dispatchTouchEvent...

Global site tag (gtag.js) - Google Analytics