Можно ли проверить в одной функции и потерю, и получение фокуса разных элементов?
Данный код проверяет потерю фокуса текстовым полем и скрывает клавиатуру, если фокус теряет текстовое поле. Но получается некрасиво когда переход осуществляется тоже в текстовое поле - клавиатура скрывается и вновь открывает. Хотелось бы сделать так, чтобы при переходе в другое текстовое поле клавиатура не скрывалась и не открывалась повторно. А оставалась открытой.
override fun dispatchTouchEvent(event: MotionEvent): Boolean {
if (event.action == MotionEvent.ACTION_DOWN) {
val currentClickView: View? = currentFocus
if (currentClickView is EditText) {
currentClickView.clearFocus()
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(currentClickView.windowToken, 0)
}
}
return super.dispatchTouchEvent(event)
Если нужна какая-то проверка на получение фокуса текстовым полем, то как их объединить? что-то вроде:
viewItem.setOnClickListener { nextCurrent: View, hasFocus ->
nextField = nextCurrent as EditText
if(hasFocus)
..............
}