繁体   English   中英

在新页面上隐藏软键盘

[英]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 - > focusablefalse的内部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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM