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
})
'안드로이드 코틀린' 카테고리의 다른 글
[Android][Kotlin] ConnectivityManager를 활용하여 현재 인터넷 상태 가져오기 (2) | 2023.12.05 |
---|---|
[Kotlin][Android] 카메라 기능 이용해서 이미지 받아오기 (0) | 2023.12.02 |
[Android][kotlin] EditText 외부 탭하여 키보드 내려가게 하기 (0) | 2023.10.23 |
[Android][kotlin] youtubePlayer 라이브러리 를 이용해 유튜브영상 표시해 주기 (2) | 2023.10.01 |
[Kotlin][Android]Gson 이용해서 Json 데이터 다루기 (0) | 2023.09.11 |