Android:滚动视图中的 EditText:阻止软键盘自动显示

Android: EditText inside Scrollview: block softkeyboard autoshow

当 Activity 在滚动视图中有 EditText 时,会自动显示软键盘。

但是EditText并不是Activity的主要功能。

如何防止软键盘在创建 Activity 时自动显示?

有些事情没有解决问题:

您只需移除 EditText 焦点。

1-将android:windowSoftInputMode="stateHidden"添加到清单中的activity标签

2-使用 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

3-使用 edittext.clearFocus();

4-套

    android:focusable="true"
    android:focusableInTouchMode="true" 

另辟蹊径。

注意: edittext.clearFocus();可能不起作用,因为它会将焦点设置回 activity 中的另一个可聚焦视图,因此对于一个视图,它只是重置聚焦同一视图的能力。

你可以使用 edittext.clearFocus(); 或添加 android:windowSoftInputMode="stateHidden"

您可以在 onCreate 方法中使用此代码...

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

阻止软键盘自动显示的正确方法是防止它聚焦在 EditText 上。

对于布局中的每个编辑文本:

onCreate()
    editText = (EditText)findViewById(R.id.edittext);
    editText.setFocusable(false);

在您的 xml 布局文件中:

<EditText
    ...
    android:onClick="enableFocusable"

然后在javaclass,一个方法...

public void enableFocusable(View view) {
    editText.setFocusableInTouchMode(true);
    editText.requestFocus();
    if (view.requestFocus()) {
        InputMethodManager imm = (InputMethodManager)
                getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
    }
}