Gérer les modifications de configuration du clavier amovible

Le système Android déclenche un changement de configuration chaque fois qu'un clavier est connecté ou déconnecté d'un appareil. Pour offrir une expérience utilisateur fluide et maximiser la productivité des utilisateurs sur les appareils à grand écran avec clavier détachable, votre application doit gérer efficacement les modifications de configuration du clavier.

Résultats

Votre application répond à la connexion ou à la déconnexion d'un clavier externe sans recréer l'activité en cours.

Empêcher la recréation d'activité lors du changement de clavier

Pour empêcher la recréation de votre activité lorsqu'un clavier détachable est connecté ou déconnecté, ajoutez des valeurs liées au clavier à l'attribut configChanges du fichier manifeste de votre application et ajoutez une vue à la hiérarchie des vues de l'activité afin que votre application puisse écouter les modifications de configuration.

1. Déclarer l'attribut configChanges

Mettez à jour l'élément <activity> dans le fichier manifeste de l'application en ajoutant les valeurs keyboard|keyboardHidden à la liste des modifications de configuration déjà gérées :

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

2. Ajouter une vue vide à la hiérarchie des vues

Déclarez une nouvelle vue et ajoutez votre code de gestionnaire dans la méthode onConfigurationChanged() de la vue :

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

Points essentiels

  • android:configChanges : attribut de l'élément <activity> du fichier manifeste de l'application. Informe le système des modifications de configuration gérées par l'application.
  • View#onConfigurationChanged() : méthode qui réagit à la propagation d'une nouvelle configuration d'application.

Collections contenant ce guide

Ce guide fait partie des collections de guides de démarrage rapide organisées qui couvrent des objectifs de développement Android plus larges :

Permettez à votre application d'offrir une expérience utilisateur optimisée sur les tablettes, les appareils pliables et les appareils ChromeOS.

Poser des questions ou envoyer des commentaires

Consultez notre page de questions fréquentes et découvrez nos guides rapides. Vous pouvez également nous contacter pour nous faire part de vos commentaires.