2015-01-24 6 views
0

searchview에 사용자 정의 키보드를 표시하고 기본 소프트 입력 키보드를 표시하지 않습니다. 내비게이션 서랍을 당겨 놓은 경우를 제외하고는 잘 작동합니다. 기본 소프트 입력 키보드가 표시됩니다. 액션 바 검색보기 또는 특정 활동에 대한 기본 소프트 키보드를 어떻게 비활성화합니까? 지금까지 나는 성공없이 다음을 시도 설정searchview 용 소프트 입력 키보드 사용 안 함

  • 활동의 WindowSoftInputModeStateAlwaysHidden SearchView의 입력 유형을 설정
  • -NULL
  • 로하여 SearchView 뒤에 EditText의 기초와 OnTouchListener을 추가하고 숨기기 기본 소프트 키보드를 가져옵니다 와 함께 InputMethodManager

참고 : 나는 Mono Android를 사용하고 있으며 Java 코드를 이해할 수 있으므로 ' 자바 솔루션을 제공하는 것을 망설이지 마십시오.

답변

0
/** 
* Toggle keyboard If the keyboard is visible,then hidden it,if it's 
* invisible,then show it 
* 
* @param context 
*/ 
public static void toggleKeyboard(Context context) { 
    InputMethodManager imm = (InputMethodManager) context 
      .getSystemService(Context.INPUT_METHOD_SERVICE); 
    if (imm.isActive()) { 
     imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 
       InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
} 

/** 
* Hide keyboard 
* 
* @param context 
*/ 
public static void hideKeyboard(Context context,IBinder token) { 
    InputMethodManager imm = (InputMethodManager) context 
      .getSystemService(Context.INPUT_METHOD_SERVICE); 
    if(imm.isActive()){ 
     imm.hideSoftInputFromWindow(token,0); 
    } 
} 
+0

감사합니다. 나는 기본 키보드를 숨기기 위해 이와 비슷한 방법을 사용하고있다. 하지만 어떤 이벤트가 응용 프로그램이 초점이 맞지 않을 때 나타나는 기본 키보드를 트리거하는 지 알 수 없습니다. 예 : 알림 표시 줄, 배터리 부족 경고 등을 당길 때 –

+0

특별한보기로 생각하면 'OnFocusChangeListener'입니다. 그것의 세계적인 사건을 찾고 싶다. 나는 모른다. – baitouwei

+0

그걸로 시도해 봤어. 일하지 않았어. 의견을 보내 주셔서 감사합니다. –

관련 문제