Intereting Posts

Как удалить всплывающее окно автоматической фокусировки / клавиатуры при появлении экрана?

У меня есть экран, где первое поле является EditText, и оно получает фокус при запуске, а также всплывает числовой тип ввода, что очень раздражает

Как я могу убедиться, что при запуске операции фокус не будет получен, и / или панель ввода не будет поднята?

Solutions Collecting From Web of "Как удалить всплывающее окно автоматической фокусировки / клавиатуры при появлении экрана?"

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0); 

или

Установить свойство активности в файле манифеста, как показано ниже

 android:windowSoftInputMode="stateHidden" 

Перейдите в файл манифеста приложения и напишите эту строку для этого действия, которое вы хотите отключить всплывающую клавиатуру.

 android:windowSoftInputMode="stateHidden" 

Чтобы программно не отображалась клавиатура, но виджет по умолчанию все еще получает вызов фокуса:

 getWindow().setSoftInputMode(WindowManager. LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

onResume()

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Вызовите вышеуказанный метод внутри onCreate (). Это предотвратит отображение softKeyboard, если пользователь не выбирает EditText , tapping or clicking.

Или просто добавьте android:windowSoftInputMode="stateHidden" в теге Activity в Manifest.xml

Уделите внимание другому взгляду. По умолчанию первый фокусный вид будет получать фокус при раздутии макета. Вы можете запросить фокус на другом представлении через XML:

 <TextView android:layout_width="wrap_parent" android:layout_height="wrap_content" android:text="Some other view"> <requestFocus /> </TextView> 

Это работает для любого вида.

Если вы хотите сделать это программно, вы можете использовать view.requestFocus() .

Обычно это беспорядок. Первое, что я пытаюсь сделать, это попытаться украсть фокус с другого вида через. Вы также должны иметь настраиваемый и focusableInTouchMode.

 <TextView ... android:focusable="true" android:focusableInTouchMode="true"> <requestFocus/> </TextView> 

Не пробовал это и не приближаюсь к моему компьютеру программирования, но я бы заподозрил программную отправку фокуса в родительский вид, или что-то в этом роде могло бы сделать трюк – это скорее обходное решение, чем решение, но опять же неспособное проверить его просто мысль

 if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED) { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); }