У меня есть экран, где первым полем является EditText, и он получает фокус при запуске, а также всплывает числовой тип ввода, что очень раздражает
Как я могу убедиться, что при запуске активности фокус не получает и/или панель ввода не поднимается?
У меня есть экран, где первым полем является EditText, и он получает фокус при запуске, а также всплывает числовой тип ввода, что очень раздражает
Как я могу убедиться, что при запуске активности фокус не получает и/или панель ввода не поднимается?
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
or
установите свойство активности в файле манифеста, как показано ниже, в теге приложения
android:windowSoftInputMode="stateHidden"
Formats: flag Values: adjustNothing, adjustPan, adjustResize, adjustUnspecified, stateAlwaysHidden, stateAlwaysVisible, stateHidden, stateUnchanged, stateUnspecified, stateVisible Specify the default soft-input mode for the main window of this activity. A value besides "unspecified" here overrides any value in the theme.
- person Jeff Muir; 29.08.2017
перейдите в файл манифеста вашего приложения и напишите эту строку для того действия, которое вы хотите отключить всплывающее окно с автоматической клавиатурой.
android:windowSoftInputMode="stateHidden"
Чтобы программно не отображать клавиатуру, но виджет по умолчанию по-прежнему получает вызов фокуса:
getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
in onResume()
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
вызовите указанный выше метод внутри onCreate(). Это предотвратит отображение softKeyboard, если пользователь не выберет EditText с помощью
tapping or clicking.
или просто добавьте android:windowSoftInputMode="stateHidden"
в тег Activity в Manifest.xml
Обычно это бардак. Первое, что я пытаюсь сделать, это попытаться украсть фокус с помощью другого вида через . Вы также должны иметь focusable и focusableInTouchMode.
<TextView
...
android:focusable="true"
android:focusableInTouchMode="true">
<requestFocus/>
</TextView>
Сфокусируйтесь на другом виде. По умолчанию первое фокусируемое представление получает фокус при раздувании макета. Вы можете запросить фокус на другом представлении через XML:
<TextView
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
android:text="Some other view">
<requestFocus />
</TextView>
Это работает для любого представления.
Если вы хотите сделать это программно, вы можете использовать view.requestFocus()
.
Добавление android:windowSoftInputMode="stateHidden"
к вашей активности в манифесте скрывает клавиатуру только при запуске активности или, как говорит Google
Когда пользователь утвердительно переходит к действию, а не возвращается к нему из-за выхода из другого действия.
Чтобы скрыть клавиатуру также, когда пользователь нажимает кнопку «Назад» и возвращается к вашей активности из какой-либо другой активности, используйте android:windowSoftInputMode="stateAlwaysHidden"
не пробовал это, и я не нахожусь рядом с моим компьютером для программирования, но я подозреваю, что программная отправка фокуса в родительское представление или что-то в этом роде может помочь - это, скорее, обходной путь, чем решение, но опять же не в состоянии проверить это просто мысль
.requestFocus();
на кнопку, но всплывающая клавиатура все равно всплывает.
- person Pentium10; 28.05.2010
edit
и внесите изменения. И, пожалуйста, попробуйте отформатировать свой код, выбрав код и нажав кнопку "Образец кода" {}
или нажав Ctrl+K
.
- person Peter Lang; 24.05.2012