一:实现点击空白处,软键盘消失事件
override fun dispatchTouchEvent(motionEvent: MotionEvent): Boolean {
if (motionEvent.action == MotionEvent.ACTION_DOWN) {
// 获得当前得到焦点的View,一般情况下就是EditText(特殊情况就是轨迹求或者实体案件会移动焦点)
val v = currentFocus
if (isShouldHideInput(v, motionEvent)) {
hideSoftInput(v!!.windowToken)
}
}
return super.dispatchTouchEvent(motionEvent)
}
二、根据EditText所在坐标和用户点击的坐标相对比,做判断是否需要隐藏键盘,因为当用户点击EditText时没必要隐藏
private fun isShouldHideInput(v: View?, event: MotionEvent): Boolean {
if (v != null && v is EditText) {
val l = intArrayOf(0, 0)
v.getLocationInWindow(l)
val left =