У меня была очень похожая проблема, и я смог решить ее следующим образом.
В манифесте Android вы должны добавить эти строки в операцию
<activity
android:name=".activities.YourActivity"
android:windowSoftInputMode="adjustResize|stateAlwaysHidden" />
В классе деятельности (Java) добавьте это в метод onResume
. Это предотвратит появление клавиатуры при возобновлении активности
@Override
protected void onResume() {
super.onResume();
this.getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_HIDDEN); //hide keyboard when your activity is in use
}
. И я добавил этот метод, чтобы изменить EditText
, и вызывал его из onCreate, и всякий раз, когда я изменял свою пользовательскую клавиатуру
private void setupSpinItemsCustomKeyboard() {
Helper.hideAllKeyboard(YourActivity.this);
fromEditText.setShowSoftInputOnFocus(false); //no response on keyboard touch
fromEditText.requestFocus();
}
и это фактически скрывает клавиатуру
public static void hideAllKeyboard(Activity activity) {
View view = activity.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(
Context.INPUT_METHOD_SERVICE);
assert imm != null;
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}