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

package com.example.mynewtest;import android.content.Context;import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;import androidx.appcompat.widget.Toolbar;import android.view.MotionEvent;import android.view.View;import android.view.inputmethod.InputMethodManager;import android.widget.Button;import android.widget.EditText;public class Login extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.login);        Toolbar toolbar = findViewById(R.id.toolbar);        setSupportActionBar(toolbar);    }    //点击空白区域隐藏键盘    public boolean dispatchTouchEvent(MotionEvent ev) {        if (ev.getAction() == MotionEvent.ACTION_DOWN) {            View v = getCurrentFocus();            //当isShouldHideInput(v, ev)为true时,表示的是点击输入框区域,则需要显示键盘,同时显示光标,反之,需要隐藏键盘、光标            if (isShouldHideInput(v, ev)) {                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);                if (imm != null) {                    imm.hideSoftInputFromWindow(v.getWindowToken(), 0);                    //处理Editext的光标隐藏、显示逻辑                    //  t1.clearFocus();                }            }            return super.dispatchTouchEvent(ev);        }        // 必不可少,否则所有的组件都不会有TouchEvent了        if (getWindow().superDispatchTouchEvent(ev)) {            return true;        }        return onTouchEvent(ev);    }    public  boolean isShouldHideInput(View v, MotionEvent event) {        if (v != null && (v instanceof EditText)) {            int[] leftTop = { 0, 0 };            //获取输入框当前的location位置            v.getLocationInWindow(leftTop);            int left = leftTop[0];            int top = leftTop[1];            int bottom = top + v.getHeight();            int right = left + v.getWidth();            if (event.getX() > left && event.getX() < right                    && event.getY() > top && event.getY() < bottom) {                // 点击的是输入框区域,保留点击EditText的事件                return false;            } else {                return true;            }        }        return false;    }}

更多相关文章

  1. android中隐藏以及显示软键盘代码
  2. android 截获键盘事件
  3. Android(安卓)键盘弹出与隐藏
  4. android之实现各个组件点击事件监听
  5. Android(安卓)点击回退按钮时弹出提示框
  6. Android应用程序启动画面
  7. Android(安卓)点击按钮隐藏键盘
  8. android 监听判断软键盘的弹出、隐藏状态
  9. android软键盘的显示与隐藏

随机推荐

  1. 学习:Android生命周期
  2. 在win7下搭建Android开发环碰到的两个问
  3. Android逆向分析必备网址大全
  4. Android(安卓)Gallery滑动太快的问题
  5. android ScrollView 与SeekBar结合使用
  6. Dalvik——基本Dalvik VM调用
  7. Android(安卓)Parcel实现反向Binder通信
  8. Android(安卓)代码控制手机数据网络的开
  9. android添加第三方库以及JNI接口封装
  10. Android得到呼入的手机号码