Cómo administrar los cambios de configuración del teclado desmontable

El sistema Android activa un cambio de configuración cada vez que se conecta o desconecta un teclado de un dispositivo. Para proporcionar una experiencia del usuario fluida y maximizar la productividad del usuario en dispositivos con pantallas grandes y teclados desmontables, tu app debe administrar de manera eficaz los cambios en la configuración del teclado.

Resultados

Tu app responde a la conexión o desconexión de un teclado externo sin volver a crear la actividad en ejecución.

Cómo evitar la recreación de la actividad cuando cambia el teclado

Para evitar que se vuelva a crear tu actividad cuando se conecta o desconecta un teclado desmontable, agrega valores relacionados con el teclado al atributo configChanges del manifiesto de tu app y agrega una vista a la jerarquía de vistas de la actividad para que tu app pueda detectar los cambios de configuración.

1. Declara el atributo configChanges

Actualiza el elemento <activity> en el manifiesto de la app agregando los valores de keyboard|keyboardHidden a la lista de cambios de configuración ya administrados:

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

2. Agrega una vista vacía a la jerarquía de vistas

Declara una vista nueva y agrega el código del controlador dentro del método onConfigurationChanged() de la vista:

Kotlin

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.
    }
};

Puntos clave

  • android:configChanges: Es el atributo del elemento <activity> del manifiesto de la app. Informa al sistema sobre los cambios de configuración que administra la app.
  • View#onConfigurationChanged() : Método que reacciona a la propagación de una nueva configuración de la app.

Colecciones que contienen esta guía

Esta guía forma parte de las colecciones seleccionadas de Guías rápidas que abarcan objetivos más amplios de desarrollo para Android:

Habilita tu app para que admita una experiencia del usuario optimizada en tablets, dispositivos plegables y dispositivos ChromeOS.

Preguntas o comentarios

Visita nuestra página de preguntas frecuentes y consulta las guías rápidas, o bien comunícate con nosotros para contarnos tu opinión.