当一个Activity在滚动视图中有一个EditText时,软键盘会自动显示。
但EditText不是Activity的主要功能。
如何在创建活动时阻止SoftKeyboard自动显示?
有些事情没有解决问题:
添加代码以隐藏软键盘会导致出现问题:
。this.getWindow()setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
或在清单中:android:windowSoftInputMode =" stateAlwaysHidden"
答案 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);
}
}