Android/AndroidStudio

[Android Studio] Soft Keyboard 내리는 방법

앱의노예 2022. 12. 30. 14:44

 

키보드를 코드로 제어해 내리는 방법이다

버튼을 누르면 키보드가 내려가거나 키보드 이외의 영역을 터치하면 키보드가 내려가는 등 여러 영역에서 쓰인다 

Activity에서 구현하냐 Fragment에서 구현하냐에 따라 코드가 약간 달라진다

 

InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

 

먼저 Activity에서 필요한 코드이다

 

InputMethodManager InputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
InputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

 

Fragment에서 필요한 코드이다

모두 Java코드이지만 코틀린 파일에 넣어도 자동변환 기능이 잘되어 있기에 쉽게 사용할 수 있다

 

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val myButton: Button = findViewById(R.id.test_button)

        myButton.setOnClickListener{
            val inputManager = this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            inputManager.hideSoftInputFromWindow(this.currentFocus!!.windowToken, InputMethodManager.HIDE_NOT_ALWAYS)
        }
    }
}

 

마지막은 위의 gif를 구현하는데 작성한 코틀린 코드이다

버튼을 누르면 키보드가 내려가게 작성하였다