ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Android 软键盘与输入框对不齐?聊聊输入交互里的坐标问题

Android 软键盘与输入框对不齐?聊聊输入交互里的坐标问题 getGlobalVisibleRect拿到的"全局可见区域",在输入框被键盘顶起来之后可能已经不准了——很多人在这上面栽了跟头。前言很多 App 都有这个交互:键盘弹着,用户点输入框外面的区域,键盘收起来。实现思路很简单——监听全局触摸事件,如果点击点不在输入框范围内,就收起键盘、清掉焦点。看起来无懈可击,但真有人踩到一个隐蔽的坑:输入框被键盘顶起来之后,某些取"输入框位置"的 API 拿到的坐标是错的,导致点击明明在输入框外,却被误判为在框内,键盘死活收不起来。这篇文章把这个问题讲透。一、朴素实现:按下时判断点击点是否在输入框内典型写法是在dispatchTouchEvent里,按下事件时检查点击坐标是否落在当前聚焦的输入框内:overridefundispatchTouchEvent(ev:MotionEvent)
返回列表