Клавиатура на Surface Duo
Если приложение отображается на одном экране, оно ведет себя аналогично приложениям на любом другом устройстве Android — клавиатура отображается в рамках окна приложения, а разработчики могут прослушивать изменения вставок окна для корректировки макета со смещением клавиатуры (чтобы редактируемый текст не скрывался):
Если Surface Duo работает в режиме альбомной ориентации на двух экранах, клавиатура может отображаться на всем нижнем экране. При этом позиция приложения будет зависеть от того, как оно отображалось до редактирования:
- Развернуто — если приложение развернуто на оба экрана, клавиатура займет нижнюю половину приложения (с соответствующим изменением вставок).
- Приложение на верхнем экране — нижняя вставка будет нулевой, так как клавиатура будет полностью занимать другой экран.
- Приложение на нижнем экране — приложение будет перемещено на верхний экран для корректного отображения клавиатуры. После завершения редактирования и скрытия клавиатуры приложение будет возвращено на нижний экран.
Приложениям не нужно выполнять другие действия в таких ситуациях, а просто реагировать на изменения вставок и соответствующим образом корректировать макет.
Вставки клавиатуры
Чтобы обнаружить вставку клавиатуры, сначала добавьте android:windowSoftInputMode
в манифест Android:
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
Затем задайте прослушиватель с помощью метода setOnApplyWindowInsetsListener
в корневом представлении действия. Android будет вызывать прослушиватель всякий раз при отображении клавиатуры, а systemWindowInsets.bottom
будет включать данные о числе пикселей, занимаемых клавиатурой (в том числе при незакрепленной клавиатуре):