Управление изменениями конфигурации съемной клавиатуры

Система Android инициирует изменение конфигурации каждый раз, когда клавиатура подключается к устройству или отключается от него. Для обеспечения бесперебойной работы пользователя и максимальной производительности на устройствах с большими экранами и отсоединяемыми клавиатурами ваше приложение должно эффективно управлять изменениями конфигурации клавиатуры.

Результаты

Ваше приложение реагирует на подключение или отключение внешней клавиатуры без повторного создания запущенной активности.

Совместимость версий

Для этой реализации установите для параметра minSDK вашего проекта уровень API 8 (см. View#onConfigurationChanged() ).

Зависимости

Никто.

Предотвратить повторное использование активности при изменении клавиатуры

Чтобы предотвратить повторное создание вашей активности при подключении или отключении отсоединяемой клавиатуры, добавьте значения, связанные с клавиатурой, в атрибут configChanges манифеста вашего приложения и добавьте представление в иерархию представлений активности, чтобы ваше приложение могло отслеживать изменения конфигурации.

1. Объявите атрибут configChanges .

Обновите элемент <activity> в манифесте приложения, добавив значения keyboard|keyboardHidden в список уже измененных параметров конфигурации:

<activity
    ...
    android:configChanges="...|keyboard|keyboardHidden">

2. Добавьте пустое представление в иерархию представлений.

Объявите новое представление и добавьте код обработчика в метод onConfigurationChanged() этого представления:

Котлин

val v = object : View(this) {
    override fun onConfigurationChanged(newConfig: Configuration?) {
        super.onConfigurationChanged(newConfig)
        // Handler code here.
    }
}

Java

View v = new View(this) {
    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Handler code here.
    }
};

Ключевые моменты

  • android:configChanges : Атрибут элемента <activity> в манифесте приложения. Информирует систему об изменениях конфигурации, которыми управляет приложение.
  • View#onConfigurationChanged() : Метод, реагирующий на распространение новой конфигурации приложения.

Коллекции, содержащие это руководство

Данное руководство является частью подборки кратких руководств, охватывающих более широкие цели разработки под Android:

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

Есть вопросы или отзывы?

Перейдите на страницу часто задаваемых вопросов и ознакомьтесь с краткими руководствами или свяжитесь с нами и поделитесь своими мыслями.