“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”
앱을 만들다보면 SoftKeyboard(이하 키보드)를
특정 조건에 맞춰 올리거나 내리고 싶을 때가 있다.
다행히도 Android에서
코드 몇 줄로 처리가 가능하게 방법을 제공하고 있다.
우선 공통적으로 InputMethodManager
인스턴스를 가져와야한다.
val manager = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
// keyboard up
manager.showSoftInput(binding.textAreaInformation, InputMethodManager.SHOW_IMPLICIT)
// keyboard down
manager.hideSoftInputFromWindow(currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS)
키보드를 올리거나 내리고 싶은 시점에
위 코드를 넣어주면 된다.
참고로 showSoftInput(view, flags)
에서
첫번째 매개변수인 view는 키보드가 입력될 view를 넣어주며
이 view가 focus를 가지고 있어야 제대로 작동한다.
만약 view가 focus를 가지고 있는지 확실치 않다면
메소드를 호출하기 전에 view.requestFocus()
를 사용해서
focus를 명시적으로 주면 된다.