在新页面上隐藏软键盘

时间:2017-10-05 15:39:14

标签: java android

我在下一个视图上有一个带有EditText元素的应用程序。这意味着当我的应用程序加载时,默认情况下会出现软键盘。

我使用什么代码在IntelliJ上隐藏此键盘?

更新

4 个答案:

答案 0 :(得分:0)

对于隐藏键盘,您可以有两种方式:

要么:(这会在应用/活动启动时隐藏键盘)

将此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);

请记住,您必须通过视图隐藏键盘,如上所述。

答案 1 :(得分:0)

最简单的方式

onCreate()

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

有时这不会奏效。 所以你可以做的是,让你editText - &gt; focusablefalseXML

答案 2 :(得分:0)

这是我显示和隐藏键盘的方法,从活动或片段中调用

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);
    }
}

答案 3 :(得分:0)

在Manifest中将android:windowSoftInputMode =“adjustPan”放在你想要隐藏软键盘的活动下面:

    <activity android:name=".Viewschedule"
          android:screenOrientation="portrait"
          android:windowSoftInputMode="adjustPan"></activity>

OR

   InputMethodManager imgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
  imgr.showSoftInput(view, 0);