Android:Scrollview内的EditText:阻止软键盘自动显示

时间:2015-07-29 06:07:26

标签: android android-edittext scrollview android-softkeyboard

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

但EditText不是Activity的主要功能。

如何在创建活动时阻止SoftKeyboard自动显示?

有些事情没有解决问题:

  • 添加代码以隐藏软键盘会导致出现问题:

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

  • 或在清单中:android:windowSoftInputMode =" stateAlwaysHidden"

4 个答案:

答案 0 :(得分:0)

您只需删除EditText焦点。

android:windowSoftInputMode="stateHidden"添加到清单

中的活动代码

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

3次使用edittext.clearFocus();

4- set

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

另一种观点。

注意: edittext.clearFocus();可能无法正常工作,因为它会将焦点设置回活动中的另一个可聚焦视图,因此只需一个视图就可以将焦点功能重置为同一视图。 / p>

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:-2)

阻止软键盘自动显示的正确方法是防止它关注EditText。

对于布局中的每个edittext:

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

在xml布局文件中:

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

然后在java类中,一个方法......

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