천복만복 프로그래밍/천복만복 안드로이드

[안드로이드] 현재 키보드(IME)가 보여지고 있는지 확인하는 방법

U&MeBlue 2021. 10. 22. 17:53

안드로이드 11 이전에서는 현재 화면에 키보드가 보여지고 있는지 테스트하는 방법이 마땅히 존재하지 않았다. ViewTreeObserver 와 같은 것들을 이용한 workaround 가 있었지만 어디까지나 workaround 일 뿐 구글에서 공식적으로 지원하는 platform api 가 아니기 때문에 사용하기 망설여진다.

 

그러나 안드로이드 11 이 후부터는 키보드가 화면에 보여지고 있는지, 아닌지를 platform api 를 통해서 확인할 수 있다. Compat api 를 활용하면 안드로이드 11 이전 버전 (api level 30 이전) 에서도 활용할 수 있다.

 

다음 한줄이면 충분하다!

 

val keyboardVisible = ViewCompat.getRootWindowInsets(view)?.isVisible(WindowInsetsCompat.Type.ime()) == true

 

728x90