Ввод текста java android

402
30 сентября 2017, 20:30

Создаю свое простенькое приложение. Возникла проблема. При вводе текста все элементы на Activity сдвигаются из-за появления клавиатуры. Хочу этого избежать. Нужно, чтобы она просто закрывала их собой

Answer 1

Для этого в манифесте есть атрибут android:windowSoftInputMode

возможные значения:

  • stateUnspecified - настройка по умолчанию. Система сама выбирает подходящее поведение клавиатуры.
  • stateUnchanged - клавиатура сохраняет своё последнее состояние (видимое или невидимое), когда активность с текстовым полем получает фокус.
  • stateHidden - клавиатура скрыта, когда открывается активность. Клавиатура появится при наборе текста. Если пользователь переключится на другую активность, то клавиатура будут скрыта, но при возвращении назад клавиатура останется на экране, если она была видима при закрытии активности.
  • stateAlwaysHidden - клавиатура всегда скрывается, если активность получает фокус.
  • stateVisible - клавиатура видима.
  • stateAlwaysVisible - клавиатура становится видимой, когда пользователь открывает активность.
  • adjustNothing - компоненты не сдвигаются и не изменяются, клавиатура закрывает собой часть компонентов снизу.
  • adjustResize - размеры компонентов в окне активности могут изменяться, чтобы освободить место для экранной клавиатуры.
  • adjustPan - окно активности и его компоненты не изменяются, а сдвигаются таким образом, чтобы текстовое поле с фокусом не было закрыто клавиатурой.
  • adjustUnspecified - настройка по умолчанию. Система сама выбирает нужный режим.

То есть вы можете выбрать между AdjustResize (сжимать) и AdjustPan (сдвигать) - третьего не дано, так как с AdjustNothing для ввода будет доступна только небольшая часть вверху экрана.

Пример:

<activity
    android:name=".CatsActivity"
    android:label="@string/app_name"
    android:windowSoftInputMode="adjustPan" >
</activity>

Значения можно комбинировать : android:windowSoftInputMode="stateVisible | adjustResize"

READ ALSO
Сохранить Timestamp в SharedPreferences Android

Сохранить Timestamp в SharedPreferences Android

Как можно сохранить значение типа Timestamp в Shared Preferences? Насколько я знаю, у Editor есть только методы для int, string, boolean, long, float

369
JavaFX. Как сделать модальное окно для получения папки удаленного ПК

JavaFX. Как сделать модальное окно для получения папки удаленного ПК

Как в JavaFX реализовать модальное окно для получения папки удаленного компьютера? Для получения папки на самом компьютере делал через DirectoryChooserМожет...

311
Взаимодействие между JDBC и БД R-Keeper

Взаимодействие между JDBC и БД R-Keeper

Подскажет пожалуйстаМожет кто работал с R-Keeper

315
Как убрать белую рамку от TitledPane

Как убрать белую рамку от TitledPane

Есть программа с GUI (JavaFX) -> http://joxiru/YmEgvbGcZvgREA

245