Gérer les modifications de configuration du clavier amovible

Le système Android déclenche une modification de la configuration chaque fois qu'un clavier est connecté ou déconnecté d'un appareil. Pour offrir une expérience utilisateur fluide et optimiser la productivité des utilisateurs sur les appareils à grand écran dotés de claviers amovibles, 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 d'exécution.

Compatibilité des versions

Définissez le minSDK de votre projet sur le niveau d'API 8 pour cette implémentation (voir View#onConfigurationChanged()).

Dépendances

Aucune.

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

Pour éviter que votre activité ne soit recréée lorsqu'un clavier amovible est connecté ou déconnecté, ajoutez des valeurs liées au clavier à l'attribut configChanges du fichier manifeste d'application 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 d'application en ajoutant les keyboard|keyboardHidden valeurs à 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 un nouvel affichage et ajoutez votre code de gestion dans la méthode onConfigurationChanged() de l'affichage :

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 de ces collections de guides rapides organisées qui couvrent des objectifs de développement Android plus larges :

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

Questions ou commentaires

Consultez notre page de questions fréquentes pour en savoir plus sur les guides rapides ou contactez-nous pour nous faire part de vos commentaires.