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 garantizar una experiencia del usuario fluida y maximizar su productividad en dispositivos con pantallas grandes y teclados desmontables, tu app debe administrar de manera eficaz los cambios de configuración del teclado.

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

Para evitar que tu actividad se vuelva a crear 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 cambios de configuración.

1. Declara el atributo configChanges

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

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

2. Cómo agregar una vista vacía a la jerarquía de vistas

Declara una vista nueva y agrega tu código de 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 app.

Resultados

Tu app ahora responde cuando se conecta o desconecta un teclado externo sin volver a crear la actividad en ejecución.

Colecciones que contienen esta guía

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

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

Tienes preguntas o comentarios

Ve a nuestra página de preguntas frecuentes para obtener información sobre las guías rápidas o comunícate con nosotros para contarnos tu opinión.