产品参与测试的结果就是:很多没有写的需求,但是因为体验不好,就变成了bug.
期望 点击输入框外,焦点就不在,光标不闪烁。行吧,做呗。
Here universal method for all screens. Put it in your activity
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
clearFocusOnOutsideClick()
return super.dispatchTouchEvent(ev)
}
/*
* Clear focus on outside click
* */
private fun clearFocusOnOutsideClick() {
currentFocus?.apply {
if (this is EditText) {
clearFocus()
}
//Hide keyboard
val imm: InputMethodManager =
getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(windowToken, InputMethodManager.HIDE_NOT_ALWAYS)
}
}
优点是足够省事,对activity中所有的fragment都有效。并且只要有触碰都会收起键盘,滑动页面也可以。
唯一的缺点就是,没有判断 点击的组件