方向更改时隐藏Android键盘

时间:2014-05-28 10:48:46

标签: android android-softkeyboard

我使用下面的代码来显示键盘。方向更改键盘没有消失所以要关闭键盘我使用了hideSoftInputFromWindow方法,但它不起作用。我已经尝试了所有找到的解决方案。但没有人工作。我已经添加了用于显示和隐藏键盘的代码。请帮帮我。谢谢你提前

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);;
                        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
                                InputMethodManager.HIDE_IMPLICIT_ONLY);
                        imm.showSoftInput(_searchView,
                                InputMethodManager.SHOW_FORCED);

隐藏键盘

InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(_searchView.getWindowToken(), 0);

5 个答案:

答案 0 :(得分:9)

解决方案是在此行的清单文件中android:windowSoftInputMode =" stateUnchanged | adjustResize"

" stateUnchanged"键盘的状态将与之前的状态相同。隐藏或可见。

" adjustResize"将使您的编辑文本可见。

示例:

<activity
            android:name=".MyActivity"
            android:windowSoftInputMode="stateUnchanged|adjustResize" >

答案 1 :(得分:3)

在onCreate里面:

Window window = getWindow();
if (window != null) {
    window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}

答案 2 :(得分:1)

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
  //hide keyboard
}

答案 3 :(得分:0)

在manifest.xml文件中,在活动代码中应用以下属性

android:windowSoftInputMode="adjustPan"  
android:configChanges="keyboardHidden"

答案 4 :(得分:0)

屏幕旋转时调用此方法

@Override
public void onConfigurationChanged(Configuration myConfig) {
super.onConfigurationChanged(myConfig);
int orient = getResources().getConfiguration().orientation; 
switch(orient) {
            case Configuration.ORIENTATION_LANDSCAPE:
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

            //hide keyboard or whatever you want

                break;
            case Configuration.ORIENTATION_PORTRAIT:
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

            //hide keyboard or whatever you want
                break;
            default:
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
                //hide keyboard or whatever you want

                break;
            }
} 

在你的清单中,放:

<activity android:name=".YourActivity"
android:label="@string/app_name"
android:configChanges="orientation">