Le système Android déclenche une modification de configuration chaque fois qu'un clavier est connecté ou déconnecté d'un appareil. Pour garantir une expérience utilisateur fluide et maximiser la productivité des utilisateurs sur les appareils à grand écran avec clavier amovible, votre application doit gérer efficacement les modifications de configuration du clavier.
Empêcher la recréation d'activité en cas de 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
de votre fichier manifeste d'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.
Résultats
Votre application réagit désormais à la connexion ou à la déconnexion d'un clavier externe sans recréer l'activité en cours d'exécution.
Collections contenant ce guide
Ce guide fait partie de ces collections de guides rapides sélectionnées qui couvrent des objectifs de développement Android plus larges:
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=fr)