Android:滚动视图中的 EditText:阻止软键盘自动显示
Android: EditText inside Scrollview: block softkeyboard autoshow
当 Activity 在滚动视图中有 EditText 时,会自动显示软键盘。
但是EditText并不是Activity的主要功能。
如何防止软键盘在创建 Activity 时自动显示?
有些事情没有解决问题:
添加隐藏软键盘的代码导致重新显示时出现问题:
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
或清单中:android:windowSoftInputMode="stateAlwaysHidden"
您只需移除 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);
}
}
当 Activity 在滚动视图中有 EditText 时,会自动显示软键盘。
但是EditText并不是Activity的主要功能。
如何防止软键盘在创建 Activity 时自动显示?
有些事情没有解决问题:
添加隐藏软键盘的代码导致重新显示时出现问题:
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
或清单中:android:windowSoftInputMode="stateAlwaysHidden"
您只需移除 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);
}
}