У меня есть экран, где первое поле является EditText, и оно получает фокус при запуске, а также всплывает числовой тип ввода, что очень раздражает
Как я могу убедиться, что при запуске операции фокус не получен, и/или панель ввода не поднята?
У меня есть экран, где первое поле является EditText, и оно получает фокус при запуске, а также всплывает числовой тип ввода, что очень раздражает
Как я могу убедиться, что при запуске операции фокус не получен, и/или панель ввода не поднята?
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);
in onResume()
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
вызовите вышеуказанный метод внутри onCreate(). Это предотвратит отображение softKeyboard, если пользователь не выбирает EditText на
tapping or clicking.
или просто добавьте android:windowSoftInputMode="stateHidden"
в тег активности в 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);
}