Скрыть мягкий ввод в OnCreate
У меня есть TableLayout, к которому я динамически добавляю контент в код в OnCreate. Как только действие создается, оно сосредотачивается на одном из моих динамически созданных EditTexts и отображает клавиатуру. Я не хочу, чтобы клавиатура отображалась до тех пор, пока пользователь специально не нажмет один из EditTexts. Я пробовал:
InputMethodManager input = (InputMethodManager) GetSystemService(InputMethodService);
input.HideSoftInputFromWindow(CurrentFocus.WindowToken, 0);
Но клавиатура по-прежнему отображается и CurrentFocus возвращает ноль. Поэтому, когда я пытаюсь специально указать фокус на другое представление, а затем выполнить описанное выше, например:
InputMethodManager input = (InputMethodManager) GetSystemService(InputMethodService);
title.FindFocus();
input.HideSoftInputFromWindow(CurrentFocus.WindowToken, 0);
CurrentFocus по-прежнему равен нулю, а клавиатура по-прежнему отображается. title - это TextView, экземпляр которого у меня уже есть. Могу ли я просто не фокусироваться на TextView или мне чего-то не хватает?
3 ответа
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Очень просто
- Перейти к вашей
AndroidManifest.xml
файл - В вашей деятельности добавьте:
android:windowSoftInputMode="stateHidden"
Например:
<activity
android:name=".package.example.MyActivity"
android:windowSoftInputMode="stateHidden"/>
- Перейти к файлу AndroiManifest.xml
Активность, в которой вы хотите скрыть клавиатуру, добавьте следующую вещь
андроид:windowSoftInputMode="stateHidden|adjustResize|stateAlwaysHidden"