Developer Geek

Android EditText 키보드 내리기 (kotlin) 본문

안드로이드

Android EditText 키보드 내리기 (kotlin)

devGeek 2022. 1. 6. 04:04
반응형

개요 (실행화면, 간단한 앱 설명)

이슈 화면

RecyclerView를 공부한 중 EditText에 텍스트를 입력하고 저장 버튼을 눌렀을 때, 키보드가 닫히지 않는 불편함이 있었다.

해결 화면

해당 포커스를 갖는 EditText를 제외한 영역을 누르면 키보드가 내려가도록 했다.

Code - Example

MainActivity.kt

해당 Activity에서 dispatchTouchEvent() 함수를 오버라이드 해준다.

override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
        val focusView = currentFocus
        if (focusView != null && ev != null) {
            val rect = Rect()
            focusView.getGlobalVisibleRect(rect)
            val x = ev.x.toInt()
            val y = ev.y.toInt()

            if (!rect.contains(x, y)) {
                val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
                imm?.hideSoftInputFromWindow(focusView.windowToken, 0)
                focusView.clearFocus()
            }
        }
        return super.dispatchTouchEvent(ev)
    }
반응형
Comments