我使用下面的代码来显示键盘。方向更改键盘没有消失所以要关闭键盘我使用了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);
答案 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">