Middle
Est-il possible de faire en sorte que l'activité ne soit pas recréée lors de la rotation de l'écran?
sobes.tech IA
Réponse de l'IA
Oui, c'est possible. Il y a deux méthodes principales.
-
Déclarer
configChangesdans le manifeste : DansAndroidManifest.xml, pour<activity>, ajouter l'attributandroid:configChanges="orientation|screenSize".<activity android:name=".MainActivity" android:configChanges="orientation|screenSize" />Dans ce cas, l'activité n'est pas recréée, mais la méthode
onConfigurationChanged()est appelée, et doit être redéfinie pour gérer les changements de configuration.override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) // Gérer les changements, par exemple : // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // // Passage en mode paysage // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // // Passage en mode portrait // } } -
Fixer l'orientation de l'écran : Il est possible de définir une orientation fixe pour l'activité en ajoutant l'attribut
android:screenOrientationdans le manifeste.<activity android:name=".MainActivity" android:screenOrientation="portrait" />ou
<activity android:name=".MainActivity" android:screenOrientation="landscape" />Dans ce cas, l'orientation de l'activité ne changera pas, peu importe la rotation de l'appareil, et l'activité ne sera pas recréée.