2011-11-14 2 views
4

코드SHOW_FORCED와 함께 표시 한 후 강제로 키보드를 제거하는 방법

로 키보드 표시
  ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)) 
       .toggleSoftInput(InputMethodManager.SHOW_FORCED, 
         InputMethodManager.HIDE_IMPLICIT_ONLY); 
     etContent.requestFocus(); 

다음 단계에서는 새로운 LinearLayout을 부 풀리고 setContentView (newLayout)를 호출하고 키보드가 여전히 있습니다. 키보드를 강제로 제거하는 방법?

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

로 시도했지만 도움이되지 않았습니다. 누군가 내게 해결책을 제안 할 수 있습니까?

+0

확인이 답변 -> http://stackoverflow.com/questions/6647008/android-3-1-soft-keyboard-in-fullscreen- 모드/7832810 # 7832810 – guleryuz

답변

6

시험해보세요. 나는 부드러운 입력을 여러 번 숨기는 데이 방법을 사용했습니다.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(getContentView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
+0

+1, 저에게서 감사합니다. 이 주석을 보게된다면 : 왜'setSoftInputMode()'만으로는 종종 트릭을하고 때로는하지 않는지 아십니까? – jerry

+1

100 % 확신 할 수는 없지만 인수를 전달하지 않으면 메서드의 기본값이 있다고 상상해보십시오. – JoeLallouz

+0

이것은 매우 유용한 답변이지만'getContentView()'는 내 액티비티에서 해결되지 않으므로, 그냥 이것을 getWindow(). getDecorView()로 바꿉니다. 이제는 완벽하게 작동하고 있습니다. :) –

0

작동한다,이 시도

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(getContentView().getWindowToken(), 0); 
관련 문제