Android
[Android] editText 바깥 부분을 클릭하면 키보드 내려가게 하는 법
참깨빵위에참깨빵_
2020. 11. 30. 15:02
728x90
반응형
앱을 쓰다 보면 editText를 눌러 키보드를 올린 상태로 입력한 뒤, 바깥 부분을 아무데나 누르면 키보드가 내려가는 걸 볼 수 있다.
이 처리를 구현하고 싶다면 먼저 아래의 메서드를 만든다.
void hideKeyboard()
{
InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
프래그먼트를 사용 중이라면 아래 코드를 쓰면 된다.
private void hideKeyboard()
{
if (getActivity() != null && getActivity().getCurrentFocus() != null)
{
// 프래그먼트기 때문에 getActivity() 사용
InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
다음은 위에서 만든 이 메서드를 어디에 붙이느냐는 것이다.
부모 레이아웃에 id값을 준 뒤, onCreate()에서 호출하기만 하면 된다.
layout.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
hideKeyboard();
return false;
}
});
참조객체에 findViewById()를 한 뒤, setOnTouchListener()를 호출해 onTouch() 안에서 hideKeyboard()를 호출하기만 하면 된다.
이렇게 하고 앱을 빌드해서 editText를 눌러 키보드를 띄운 뒤, 바깥 부분을 누르면 올라와 있던 키보드가 사라지는 걸 볼 수 있다.
반응형