Скрыть мягкий ввод в 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);

Очень просто

  1. Перейти к вашей AndroidManifest.xml файл
  2. В вашей деятельности добавьте: android:windowSoftInputMode="stateHidden"

Например:

<activity
         android:name=".package.example.MyActivity"
            android:windowSoftInputMode="stateHidden"/>
  1. Перейти к файлу AndroiManifest.xml
  2. Активность, в которой вы хотите скрыть клавиатуру, добавьте следующую вещь

    андроид:windowSoftInputMode="stateHidden|adjustResize|stateAlwaysHidden"

Другие вопросы по тегам