Android: EditText внутри Scrollview: блокировка автошоу программных клавиш
Когда у Activity есть EditText внутри просмотра прокрутки, программная клавиша отображается автоматически.
Но EditText не является основной функцией Activity.
Как предотвратить автоматическое отображение SoftKeyboard при создании Activity?
Некоторые вещи не решают проблему:
Добавление кода, чтобы скрыть программную клавиатуру, вызывает проблемы с ее повторным отображением:
. This.getWindow() setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
или в манифесте: android:windowSoftInputMode="stateAlwaysHidden"
4 ответа
Правильный способ заблокировать автоматическое отображение программной клавиатуры - не дать ей сфокусироваться на 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);
}
}
Ты можешь использоватьedittext.clearFocus();
или добавить android:windowSoftInputMode="stateHidden"
Вы можете использовать этот код в вашем методе onCreate...
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Вы просто должны удалить EditText
фокус.
1-надстройки android:windowSoftInputMode="stateHidden"
на тег активности в манифесте
или же
2-использование this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
или же
3-использование edittext.clearFocus();
или же
4 набора
android:focusable="true"
android:focusableInTouchMode="true"
для другого взгляда.
Замечания: edittext.clearFocus();
может не сработать, потому что он устанавливает фокус обратно на другое фокусируемое представление в упражнении, поэтому в одном представлении он просто сбрасывает способность фокусировки к тому же представлению.