Создаю свое простенькое приложение. Возникла проблема. При вводе текста все элементы на Activity сдвигаются из-за появления клавиатуры. Хочу этого избежать. Нужно, чтобы она просто закрывала их собой
Ответ
Для этого в манифесте есть атрибут android:windowSoftInputMode
возможные значения:
stateUnspecified - настройка по умолчанию. Система сама выбирает подходящее поведение клавиатуры.
stateUnchanged - клавиатура сохраняет своё последнее состояние (видимое или невидимое), когда активность с текстовым полем получает фокус.
stateHidden - клавиатура скрыта, когда открывается активность. Клавиатура появится при наборе текста. Если пользователь переключится на другую активность, то клавиатура будут скрыта, но при возвращении назад клавиатура останется на экране, если она была видима при закрытии активности.
stateAlwaysHidden - клавиатура всегда скрывается, если активность получает фокус.
stateVisible - клавиатура видима.
stateAlwaysVisible - клавиатура становится видимой, когда пользователь открывает активность.
adjustNothing - компоненты не сдвигаются и не изменяются, клавиатура закрывает собой часть компонентов снизу.
adjustResize - размеры компонентов в окне активности могут изменяться, чтобы освободить место для экранной клавиатуры.
adjustPan - окно активности и его компоненты не изменяются, а сдвигаются таким образом, чтобы текстовое поле с фокусом не было закрыто клавиатурой.
adjustUnspecified - настройка по умолчанию. Система сама выбирает нужный режим.
То есть вы можете выбрать между AdjustResize (сжимать) и AdjustPan (сдвигать) - третьего не дано, так как с AdjustNothing для ввода будет доступна только небольшая часть вверху экрана.
Пример:
Значения можно комбинировать : android:windowSoftInputMode="stateVisible | adjustResize"
Комментариев нет:
Отправить комментарий