[英]Hide soft keyboard when on new page
我在下一个视图中有一个带有 EditText 元素的应用程序。 这意味着当我的应用程序加载时,软键盘默认出现。
我用什么代码在 IntelliJ 上隐藏这个键盘?
更新
对于隐藏键盘,您可以有两种方法:
要么:(这将在应用程序/活动启动时隐藏键盘)
将此android:windowSoftInputMode="adjustPan"
放在 manifest.xml 中相关活动的活动标签中,如下所示:
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustPan" />
或者:
将此方法放在您的活动中,并在您必须隐藏键盘时调用它。
@SuppressWarnings("ConstantConditions")
public void hideKeyBoard(View view) {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
并将其称为hideKeyBoard(view);
.
请记住,您必须通过视图来隐藏键盘,如上所示。
最简单的方法
在你的onCreate()
this.getWindow().setSoftInputMode
(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
有时这行不通。 所以你可以做的是,让你的editText
- > focusable
为false
的内部XML
。
这是我显示和隐藏键盘的方法,从活动或片段调用
public void hideKeyboard(final boolean hide) {
// Check if no view has focus:
View view = this.getCurrentFocus();
if (view == null) {
return;
}
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (hide) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
} else {
new Handler().postDelayed(() -> imm.showSoftInput(view, 0), 50);
}
}
在清单中,将 android:windowSoftInputMode="adjustPan" 放在要隐藏软键盘的活动下,例如:
<activity android:name=".Viewschedule"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"></activity>
或者
InputMethodManager imgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imgr.showSoftInput(view, 0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.