안드로이드 코틀린
[Android/Kotlin] 외부 화면 터치 시 키보드 숨기기
teamnova
2023. 11. 3. 12:00
728x90
EditText 에 포커스가 된 이후에 키보드가 올라와 있는데 잘못 터치했거나 할때 키보드 밖 화면을 터치하는것으로 키보드를 숨기는 동작을 해주고 싶은 경우가 있습니다.
해당하는 기능이 기본적인 동작이 아니라서 확인을 누르거나 뒤로가기를 눌러야 키보드를 내릴 수 있습니다.
오늘은 키보드외부를 터치할 시 키보드가 숩겨지는 코드를 구현해 보겠습니다.
구현은 간단합니다.
우선 다음과 같은 함수를 작성해 줍니다.
fun hideKeyboard() {
val currentFocusView = currentFocus
if (currentFocusView != null) {
val inputManager = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputManager.hideSoftInputFromWindow(
currentFocusView.windowToken,
InputMethodManager.HIDE_NOT_ALWAYS
)
}
}
이후 해당함수를 사용할 레이아웃 TouchListener 에 포함시켜 레이아웃 터치 시 실행될 수 있도록 해주면 간단하게 구현할 수 있습니다.
binding.layout.setOnTouchListener(OnTouchListener { v, event ->
hideKeyboard()
false
})