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

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

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

Чтобы предотвратить повторное создание вашего действия при подключении или отсоединении съемной клавиатуры, добавьте значения, связанные с клавиатурой, в атрибут 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.
    }
}

Ява

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

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

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

Результаты

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

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

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

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

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

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