본문 바로가기
한국 20대 개발자의 성장기

[Kotlin] 키보드 외 공간 터치하면 키보드 내려가기

by 멍동구 2022. 12. 5.
728x90

안녕하세요 고졸 개발잡니다.

 

오늘은 글을 입력시에 키보드가 올라오고 키보드 외 공간을 클릭하면 키보드가

 

내려가는 기능을 구현 해보겠습니다.

 

먼저 Ctrl + O 를 눌러서 자동완성으로 dispatchTouchEvent 를 불러옵니다

 

Ctrl + O

그리고 기능을 코딩합니다 .

 

// 바깥쪽 터치시 키보드 내려가기
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
    val focusView = currentFocus
    if (focusView != 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)
}

결과적으로 함수를 자동완성으로 불러오고 오버라이딩하여 

구현해보았습니다. 

 

감사합니다.