Middle
Is het mogelijk om te voorkomen dat de activiteit wordt opnieuw gemaakt bij het draaien van het scherm?
sobes.tech AI
Antwoord van AI
Ja, dat is mogelijk. Er zijn twee hoofdmethoden.
-
Declareer
configChangesin het manifest: InAndroidManifest.xml, voor<activity>, voeg het attribuutandroid:configChanges="orientation|screenSize"toe.<activity android:name=".MainActivity" android:configChanges="orientation|screenSize" />In dit geval wordt de activiteit niet opnieuw gemaakt, maar wordt de methode
onConfigurationChanged()aangeroepen, die overschreven moet worden om de configuratiewijzigingen af te handelen.override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) // Afhandeling van wijzigingen, bijvoorbeeld: // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // // Overgang naar landschap // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // // Overgang naar portret // } } -
Fixeer de schermoriëntatie: Het is mogelijk om een vaste oriëntatie voor de activiteit in te stellen door het attribuut
android:screenOrientationtoe te voegen aan het manifest.<activity android:name=".MainActivity" android:screenOrientation="portrait" />of
<activity android:name=".MainActivity" android:screenOrientation="landscape" />In dit geval zal de oriëntatie van de activiteit niet veranderen, ongeacht de rotatie van het apparaat, en wordt de activiteit niet opnieuw gemaakt.