안드로이드 가시도로 소프트 키보드 설정 방법

나는 내 '와' 버튼 '한' 에디트스트 레이아웃용.

'버튼을 클릭하면 쓴 이후) 의 편집 및 필드', i want to 숨김니다 가상 키보드. 난 것으로 추정하고 있지만, 이것은 간단한 코드를 예가 어디서 찾을 수 있는가?

질문에 대한 의견 (6)

Android 숨김니다 가상 키보드 사용 할 수 있는 힘 린퍼트메서드먼거, [2], ['히데소프티노푸트프롬윈도프'] 호출하십시오 반군지역 토큰인지 들어 있는 창의 집중 보기입니다.

// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {  
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

이렇게 하면 키보드를 인력용 감춰집니다 일부 상황에서. 경우에 따라서는 두 번째 매개변수입니다 InputMethodManager.HIDE_IMPLICIT_ONLY 통과될 수 있도록 할 것입니다 '으로' you only 키보드 사용자가 직접 인력용 정보기술 (it), t # 39 숨김니다 didn& 표시되려면 (누른 메뉴).

  • Note:* 이렇게 할 경우 코틀린 사용합니다. ' (Context.INPUT_METHOD_SERVICE) 를 린퍼트메서드먼거 그제시스템저비스 컨텍스트로?'

  • 코틀린 구문 *

// Check if no view has focus:
 val view = this.currentFocus
 view?.let { v ->
  val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager 
  imm?.hideSoftInputFromWindow(v.windowToken, 0)
 }

[2]: http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html # %20int% hideSoftInputFromWindow% 28android.os.ibinder, 29

해설 (34)
해결책

39 이 madness, I& 구체화합니다 수 있도록 하는 모든 안드로이드 사용자를 대상으로 먼저 사과, d, s 대신인지 Google& # 39 치료를 완전히 말도 안 되는 소프트 키보드. 그 이유는 같은 간단한 질문에 대한 답을 많기 때문에, 서로 다른, 다른 많은 고객들처럼 이 API 는 안드로이드, 무섭게 설계됨. 내가 예의가 없는 상태로 방법을 생각해 볼 수 있다.

I want to 숨김니다 방식이다. 내가 안드로이드 다음 문장을 통해 제공할 수 있을 것으로 기대됩니다. '키보르자히데 ()'. 및끝. 감사합니다. 하지만 안드로이드 문제가 있습니다. 린퍼트메서드먼거 숨김니다 '키보드' 를 사용해야 합니다. 알았어, 이는 Android& # 39 의 API 를 방식이다. 하지만! 투명지에 합니다 '에서' 컨텍스트로 액세스하려면 IMM. 이제 우리는 문제다. 내가 키보드 숨길 수 없는 '에서' 필요한 모든 사용 또는 정적 클래스 또는 유틸리티에는 컨텍스트로. imm, 또는 더 먼 지정해야 합니다 뭐라구오 보기 ' (심지어 더 뭐라구오 창') 에서 키보드를 숨기려는.

이는 어떨거라고 숨어 있는 키보드가 너무 어렵습니다. 당담자님께 Google: # 39 m, I& 때 찾는 된장 케이크, '없다' 에 대한 레시페프로비더 제공을 거부할 것이라고 그 누가 나를 된장 케이크 적립율은 의해 먹히고 있는 오토메이티드 않으면 될 것이라고 내가 처음 먹어!!

슬픈 이야기 the ugly) 이 끝나는 진실: 안드로이드 키보드 숨김니다 2 형태의 식별 제공해야 할 수 있습니다. '보기' 또는 '윈도' 다음 'a' 컨텍스트로.

내가 작업을 수행할 수 있는 방법을 제공하는 아주 단단하게 만든 정적임 유틸리티에는 전화하시기 정보기술 (it) '에서 활동,'.

public static void hideKeyboard(Activity activity) {
    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
    //Find the currently focused view, so we can grab the correct window token from it.
    View view = activity.getCurrentFocus();
    //If no view currently has focus, create a new one, just so we can grab a window token from it
    if (view == null) {
        view = new View(activity);
    }
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

활동, '에서' 라는 점을 유념하십시오 emcpreg 메서드입니다 경우에만 작동합니다! 위의 메서드 호출 대상 '활동' 을 '적절한 기간' 제커랑포쿠스 페치할 토큰인지.

하지만 예를 들어 'a' 에서 '에서 키보드를 숨기려는 에디트스트 호스팅된 디아로그프라그먼트'? # 39 는 다음과 같은 방법을 사용하여 위 can& 있습니다.

hideKeyboard(getActivity()); //won't work

이 때문에 작동합니까 you& won& # 39, t # 39, & # 39 '조각' ll be 반군지역 대한 참조입니다 활동, ',' 에 초점을 맞추고 있는 반면 '조각' 제어할 수 있는 방법이 없으므로 호스트입니다 표시됨을! 와우! 그래서 숨기기 위한 수단으로, 키보드, 조각, 내가 더 공통, 추악한 의 하위 레벨:

public static void hideKeyboardFrom(Context context, View view) {
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

아래는 몇 가지 정보를 추가로 더 많은 시간을 허비하지 않아도 되므로) 에서 찾을 낭비됩니다 그 특징은 다음과 같습니다.

  • 약 윈드로소프트린푸스모데 *

39 의 또 다른 마찰을 there& 점을 인식해야 합니다. 기본적으로 안드로이드 가 자동으로 초점을 맞춰 '포커스' 또는 '에 첫 번째 에디트스트 컨트롤입니다 할당할지 초기 활동,'. 일반적으로 inet6.0 입력기 (일반적으로 소프트 키보드) 에 초점을 맞추고 있는 응답하는지 이벤트 가속화할 수 있다. 이 때 ',', '에서' 속성 '윈드로소프트린푸스모데 안드로이드마니페스트리스메르 설정되었습니다 스테일웨이시든 지시하여' 이 키보드 무시하려면 자동으로 할당됩니다. 초기 초점을 맞춥니다.

믿기 힘들 정도로 거의 아무 것도 하지 않는 것을 막기 위해 키보드, 터치 시 제어입니다 보인다 에서 열지 않을 경우 '포커스 = &quot, false&quot,' 또는 ',' 할당되었는지 false&quot 포쿠사블린트루슈모데 = &quot, control). 언뜻 보면 이벤트 자동 초점 맞추는 이벤트를 할 뿐 아니라 윈드로소프트린푸스모데 설정값입니다 qic 의해 트리거되는 터치 이벤트.

따라서 '는' 스테일웨이시든 매우 빈약한 release. 랑하니. 아마도 '대신 이너이니시알포쿠스 합니다' 라고 불리기도 한다.

ᄋ "이번 도움이 됩니다.

  • 업데이트: 창 가져올 수 있는 여러 가지 방법을 토큰인지 *

두고 볼 수 없는 경우 (예를 들어, 방금 변경한 경우 발생할 수 있습니다) 성십자가는 다른 뷰를 제공할 경우 유용하게 사용할 수 있는 창이 토큰인지.

이들은 위의 코드는 "만약 (보기 = null) = new 보기 보기 위한 대안 (활동), 't # 39 이 don& 명시적으로 데이터베이스에구성원을 활동까지입니다.) 는 다음과 같은 뜻이 있다.

Δ1 조각은 클래스:

view = getView().getRootView().getWindowToken();

주어진 부분 '조각' 으로 매개변수입니다:

view = fragment.getView().getRootView().getWindowToken();

내용을 시작으로 본문:

view = findViewById(android.R.id.content).getRootView().getWindowToken();
  • 업데이트 2: * App 의 키보드 피하기 위해 다시 힘을 보여주는 선택해제합니다 열면 배경

이 노선은 추가 끝까지 방법:

'비에w.클리어포쿠스' ();

해설 (16)

또한 유용한 소프트 키보드 숨어 있다.

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

실제로 이 때까지 소프트 키보드 억제할지 데 사용될 수 있습니다 "玲育 닿습니다 에디트스트 보기입니다.

해설 (13)

I got one more 솔루션을 숨기십시오 키보드:

InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);

여기서 '의' 과 '0' 의 '패스' HIDE_IMPLICIT_ONLY 포지셔닝하십시오 쇼플라그 emc. 이든플라그 위치를 ''. 소프트 키보드 닫으십시오 것으로 밝혀졌다.

해설 (13)

39 의 솔루션을 meier& 일하는 나도. 내 경우 최상위 수준의 내 App 은 타브로스 숨김니다 키워드를 보고 싶습니다 - 저도 탭들 전환할 때 창 토큰인지 &solarisdvd 타브로스 보기입니다.

tabHost.setOnTabChangedListener(new OnTabChangeListener() {
    public void onTabChanged(String tabId) {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(tabHost.getApplicationWindowToken(), 0);
    }
}
해설 (1)

아래 코드를 시도하시오 언크리치 () '이'

EditText edtView=(EditText)findViewById(R.id.editTextConvertValue);
edtView.setInputType(0);
해설 (6)
  • Update:* 내가 왜 이 솔루션은 더 이상 작동하지 don& # 39, t know (난 그냥 거친 안드로이드 23). 사우라바 파레크 대신 솔루션이 사용하십시오. 이것은:
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
//Hide:
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
//Show
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);

이전 대답:

//Show soft-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
//hide keyboard :
 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
해설 (6)
protected void hideSoftKeyboard(EditText input) {
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(input.getWindowToken(), 0);    
}
해설 (3)

여기에 대답을 don& t # 39 를 사용할 경우, 다른 모든 것과 같은 there& # 39 의 또 다른 방법은, 이를 직접 제어 방식이다.

'& # 39 에디트스트 관리하게 될 몇 가지 기능이 만들기' 의 속성:

public void setEditTextFocus(boolean isFocused) {
    searchEditText.setCursorVisible(isFocused);
    searchEditText.setFocusable(isFocused);
    searchEditText.setFocusableInTouchMode(isFocused);

    if (isFocused) {
        searchEditText.requestFocus();
    }
}

그런 다음 '의' you open / 키보드 닫으십시오 에디트스트 롱포쿠스 있는지 확인합니다.

searchEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (v == searchEditText) {
            if (hasFocus) {
                // Open keyboard
                ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(searchEditText, InputMethodManager.SHOW_FORCED);
            } else {
                // Close keyboard
                ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(searchEditText.getWindowToken(), 0);
            }
        }
    }
});

이제 키보드 여시겠다고요 때마다 직접 전화:

setEditTextFocus(true);

닫기와 및 문의:

setEditTextFocus(false);
해설 (3)

사우라바 파레크 는 최고의 오토메이티드 부진했다.

오늘은 올바른 플래그를 사용하여, 어쨌든요

/* hide keyboard */
((InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE))
    .toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);

/* show keyboard */
((InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE))
    .toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);

실제 사용 예

/* click button */
public void onClick(View view) {      
  /* hide keyboard */
  ((InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE))
      .toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);

  /* start loader to check parameters ... */
}

/* loader finished */
public void onLoadFinished(Loader loader, Object data) {
    /* parameters not valid ... */

    /* show keyboard */
    ((InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE))
        .toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);

    /* parameters valid ... */
}
해설 (6)

그래서, 나는 여기서 가져다줄래요 검색: 에서 사용할 수 있는 해답을 찾을 수

// Show soft-keyboard:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

// Hide soft-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
해설 (0)

짧은 대답 # # '온 클릭' 의 '에' 리스너에 security. '론디토레스티온 에디트스트 IME_ACTION_DONE' 을 (를) ''

button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        someEditText.onEditorAction(EditorInfo.IME_ACTION_DONE)
    }
});

드릴다운하여

내가 느끼는 이 방법은 보다 더 정렬되고 Android& # 39 의 디자인 패턴. 이 예는 you& # 39 위 (일반적으로 대부분의 일반적인 건), '보통' ll 가지고 있는 중심으로 한 것은 또 호출하십시오 에디트스트 인도하심이라만일 / 키보드 제일 (이는 일반적인 예는 그 수 많은 말해둘꼐요 호출하십시오). , 한다는 점에서 이 같은 방식으로 키보드, 보통 한 릴리스에는 수행할 수 있는 '에서' 이메이비션. 그냥 '을 (를)', ',' 알 = &quot actiondone&quot 안드로이드 아메오티언스 에디트스트 한 동작을 통해 얻고자 할 때, 같은 비헤이비어를 같은 것이다.

해설 (2)

이 노력해야 합니다.

public class KeyBoard {

    public static void show(Activity activity){
        InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
        imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY); // show
    }

    public static void hide(Activity activity){
        InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
        imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); // hide
    }

    public static void toggle(Activity activity){
        InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
        if (imm.isActive()){
            hide(activity); 
        } else {
            show(activity); 
        }
    }
}

KeyBoard.toggle(activity);
해설 (5)

39 m, 사용자 정의 키보드 입력을 위한 오버클로킹된 진수 숫자를 사용하여 i& can& # 39, 그래서 별로 없는 IMM 키보드 무산되었다.

'에서 v3.2.4_r1 세초프티노푸트쇼농포쿠스 (부울입니다 show)' 는 추가되도록 제어입니다 날씨 방관하겠나 표시하십시오 테스트비에프 초점을 맞출 때, 그러나 그 때 키보드 여전히 숨겨짐 그러하매 반사 사용해야 합니다.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
    try {
        Method method = TextView.class.getMethod("setSoftInputShownOnFocus", boolean.class);
        method.invoke(mEditText, false);
    } catch (Exception e) {
        // Fallback to the second method
    }
}

기존 버전에 대해 내가 아주 좋은 결과를 얻을 수 있는 ' (단, 멀리 완벽한)', 'a' from my 루트로부터의 비에프트리오 세르베르 봉로브라유트리스트너 추가되든지 협조를 받아 보고 있는지 확인하는 단순화표현 키보드 표시됨을 다음과 같습니다.

@Override
public void onGlobalLayout() {
    Configuration config = getResources().getConfiguration();

    // Dont allow the default keyboard to show up
    if (config.keyboardHidden != Configuration.KEYBOARDHIDDEN_YES) {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(mRootView.getWindowToken(), 0);
    }
}

이 두 번째 및 마지막 해결책에 대한 핸들을 통해 선택물을 혼잡 분할합니다 키보드 나타날 수 있습니다.

39 의 키보드 들어갈 때, 전체 화면의 봉로발라리우스 isn& t 라고 합니다. 그런 상황을 피하기 위한 사용, [테스트비에프 # 세이메루티언스 (int)] [1] 또는 테스트비에프 XML 선언:

android:imeOptions="actionNone|actionUnspecified|flagNoFullscreen|flagNoExtractUi"
  • Update:* 데 사용할 수 없는 어떤 대화상자의 그냥 키보드 및 표시] 이 모든 버전:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
        WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

[1]: https://developer.android.com/reference/android/widget/TextView.html # setImeOptions% 28int% 29

해설 (5)
public void setKeyboardVisibility(boolean show) {
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    if(show){
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    }else{
        imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),0);
    }
}
해설 (0)

나는 정신없이 일하고 있고, 모든 솔루션을 통해 2 일 이상 어떤 식으로든 다른 스레드에서 올린 찾은 부족하다. 내 정확한 사항은 신뢰성입니다 투명지에 버튼를 100% 를 화면에 표시하거나 숨길 수 있는 방식이다. 키보드를 사용할 때 그 숨겨진 상태는 다시 표시 안 입력 필드를 관계없이 사용자가 클릭하는. 이 경우 사용자가 클릭 버튼이 사라지는 가시적입니다 스테이드 키보드를 아무리 안 된다. All the way up 이 작업을 하는 2.2+ 안드로이드 최신 디바이스입니다.

알 수 있듯이 이 apc® 구축현 내 애플리케이션 [청소하십시오 RPN] (https://play.google.com/store/apps/details? id = au.com.lukesleeman.rpn&amp, hl = en).

테스트 후에 많은 제안됩니다 대한 답을 다양한 안드로이드 앱 안정적으로 확연히 알 수 있다 (froyo 및 진저브레드 장치 등) 이 되었다.

  1. 일시적으로 숨김니다 방식이다. 또 다시 사용자가 다시 표시 새로운 텍스트 필드 초점을 맞춘다.
  2. 키보드 경우 볼 수 있는 활동 시작 플래그 설정 및 활동에 대한 답해 키보드 한다. 항상 가시적입니다. 이 경우 활동이 플래깅 설정이 가능합니다 초기화 중.
  3. 마크 표시 또는 사용할 수 있는 활동을 한 키보드. 이 경우 활동이 플래깅 설정이 가능합니다 초기화 중.

나를 위해 일시적으로 숨어 키보드 부족하다. 또 다시 표시 장치를 대로 따라 새로운 텍스트 필드 무게를 두고 있다. 내 앱 사용하는 등 여러 텍스트 필드 중심으로 한 페이지에 숨겨짐 키보드 아이돌 다시 새로운 텍스트 필드 원인이 된다.

외람되나 품목으로부터 신뢰성입니다 활동이 시작되는 때 목록 2 와 3 에서 사용할 수 있습니다. 일단 활동에 delaymins 있겠느 숨기거나 키보드 보이게 됩니다. 실제로 이 버튼을 누르면 키보드가 전환하십시오 재시작하여 활동을 하는 것이 요령. 내 app 의 키보드 버튼을 누르면 다음과 같은 코드를 전환하십시오 런입니다:

private void toggleKeyboard(){

    if(keypadPager.getVisibility() == View.VISIBLE){
        Intent i = new Intent(this, MainActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        Bundle state = new Bundle();
        onSaveInstanceState(state);
        state.putBoolean(SHOW_KEYBOARD, true);
        i.putExtras(state);

        startActivity(i);
    }
    else{
        Intent i = new Intent(this, MainActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        Bundle state = new Bundle();
        onSaveInstanceState(state);
        state.putBoolean(SHOW_KEYBOARD, false);
        i.putExtras(state);

        startActivity(i);
    }
}

이로 인해 현재 작업, 그리고 번들화 붙여넣습니다 구했잖아 상태로 할 활동이 시작될 경우 또는 숨길지 반군지역 부울을 통해 나타내는 키보드 표시됩니다.

다음의 코드는 내부 언크리치 메서드로부터 실행하십시오:

if(bundle.getBoolean(SHOW_KEYBOARD)){
    ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(newEquationText,0);
    getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
else{
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
            WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}

이 경우, 그 다음에 리즈한테 소프트 키보드 표시됩니다 린퍼트메서드먼거 표시하십시오 키보드와 창은 항상 부드러운 입력입니다 할 수 있는 것을 볼 수 있습니다. 소프트 키보드 감춰집니다 할 경우 다음 WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM 설정되었습니다.

나는 이 모든 디바이스에서 외곽진입 안정적으로 작동합니다 - 4 년 된 HTC 의 안드로이드 2.2 를 거친 전화_번호 최대 넥서스 7 호스팅하면서 4.2.2. 이 방식은 불이익을 받을 수 있는 유일한 비 케어플 위드 취급료 back 버튼을 합니다. 내가 할 수 있다 (해당 a 계산기에는) 한 화면 내 앱 본질적으로 대뿐입니다 옹박프레스트 오버라이드합니다 () 와 홈 화면 디바이스에는 돌아갑니다.

해설 (4)

이 주변의 모든 솔루션 로 하고 싶은 경우, 또는 소프트 키보드 닫으십시오 않고도 어디서부터든 대한 참조입니다 (에디트스트) 현장 데 사용된 경우 현장 중심의 열어보려면 키보드, 그래도 그들이성년에 이를 사용할 수 있습니다 () 의 활동은) 이 되었다.

if (getCurrentFocus() != null) {
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
해설 (0)

덕분에 이렇게 답변, 난 다음, 이 때, 내 경우에는 파생됨 있는 한 조각 작품을 통해 아주 잘 스크롤하지 비에우파거.

private void hideKeyboard() {   
    // Check if no view has focus:
    View view = this.getCurrentFocus();
    if (view != null) {
        InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

private void showKeyboard() {   
    // Check if no view has focus:
    View view = this.getCurrentFocus();
    if (view != null) {
        InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
    }
}
해설 (0)

사용할 수 있지만, s # 39 위에 다른 답을 scenario& 스케쳐내 키보드 및 적절한 컨텍스트로 this: 시도하시겠습니까 애쓰고 δ1 보기입니다 숨김니다.

setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        hideSoftKeyBoardOnTabClicked(v);
    }
}

private void hideSoftKeyBoardOnTabClicked(View v) {
    if (v != null && context != null) {
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

그리고 그것으로 부터 페치할 컨텍스트로 내려받습니다 구성자를)

public View/RelativeLayout/so and so (Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    this.context = context;
    init();
}
해설 (0)

소프트 키보드 장치 또는 기능 테스트 동안 닫을지 경우, &quot 클릭하여 뒤로를 button&quot, 그렇게 할 수 있습니다. 에서 테스트:

// Close the soft keyboard from a Test
getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);

I put &quot 뒤로를 button"; # 39 위, 이후 따옴표로 doesn&, t () '에서 활동을 위한' 옹박프레스트 트리거하여 질문이예요 그냥 키보드 닫습니다.

잠시 동안, 걸리는 만큼 일시정지하려면 smartupdate 이동하기 전에 잠시 뒤로 버튼을 클릭할 수 있으므로, 뷰 등, 이후의 닫으십시오 won& # 39, t be 레지스터링 보살피되 잠시 후에 (1 번째는 충분히 ime).

해설 (0)