Sobes.tech
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.

  1. Declareer configChanges in het manifest: In AndroidManifest.xml, voor <activity>, voeg het attribuut android: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
        // }
    }
    
  2. Fixeer de schermoriëntatie: Het is mogelijk om een vaste oriëntatie voor de activiteit in te stellen door het attribuut android:screenOrientation toe 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.