본문 바로가기

나의 플랫폼/안드로이드

[Android] showSoftInput 와 hideSoftInputFromWindow 테스트

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

showSoftInput 와 hideSoftInputFromWindow 를 사용할 때 flag 값에 따른 결과를 유추해보았습니다.


## showSoftInput에 flag 값이 0일때


hideSoftInputFromWindow(view.getWindowToken,0) : 닫힘 (Closed)

hideSoftInputFromWindow(view.getWindowToken,InputMethodManager.HIDE_NOT_ALWAYS) : 닫힘 (Closed)

hideSoftInputFromWindow(view.getWindowToken,InputMethodManager.HIDE_IMPLICIT_ONLY) : 안 닫힘 (Not Closed)


## showSoftInput에 flag 값이 SHOW_FORCED일때


hideSoftInputFromWindow(view.getWindowToken,0) : 닫힘 (Closed)

hideSoftInputFromWindow(view.getWindowToken,InputMethodManager.HIDE_NOT_ALWAYS) : 안 닫힘 (Not Closed)

hideSoftInputFromWindow(view.getWindowToken,InputMethodManager.HIDE_IMPLICIT_ONLY) : 안 닫힘 (Not Closed)


## showSoftInput에 flag 값이 SHOW_IMPLICIT일때


hideSoftInputFromWindow(view.getWindowToken,0) : 닫힘 (Closed)

hideSoftInputFromWindow(view.getWindowToken,InputMethodManager.HIDE_NOT_ALWAYS) : 닫힘 (Closed)

hideSoftInputFromWindow(view.getWindowToken,InputMethodManager.HIDE_IMPLICIT_ONLY) : view의 focus 가 바뀌지 않는 이상 닫힘 (It's closed just if view is focued)



## 결론


위 테스트로써 내릴 수있는 결론

1. hideSoftInputFromWindow flag에 0를 주면 어떠한 상황에서든 닫힘

2. hideSoftInputFromWindow flag에 HIDE_NOT_ALWAYS를 주면 SHOW_FORCED를 제외하고는 닫힘

3. hideSoftInputFromWindow flag에 HIDE_IMPLICIT_ONLY 를 주면, SHOW_IMPLICIT 로 보여진 키보드만 닫힘

   하지만, 보여준 view의 포커스가 변하면 닫히지 않음.


구글링이나 검색을 열심히 해봐도 위와 같은 테스트 데이터가 없길래 한번 만들어 봤습니다.

위 상황을 테스트한 App도 첨부하니 참고하세요.


KeyboardTest.zip



## 이블로그는 어디까지는 찾았던 부분을 잊지 않기 위해 올려놓은 것 입니다.

    내용이 부실해도 이해해 주시길 바랍니다.