Sobes.tech
Middle

Lehetséges, hogy az aktivitás ne újra legyen létrehozva a képernyő forgatásakor?

sobes.tech MI

Válasz az MI-től

Igen, ez lehetséges. Két fő módszer létezik.

  1. A configChanges deklarálása a manifestben: A AndroidManifest.xml-ben, az <activity>-hez adjuk hozzá az android:configChanges="orientation|screenSize" attribútumot.

    <activity
        android:name=".MainActivity"
        android:configChanges="orientation|screenSize" />
    

    Ebben az esetben az aktivitás nem újra létrehozott, hanem a onConfigurationChanged() metódus hívódik meg, amit felül kell írni a konfigurációs változások kezeléséhez.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // A változások kezelése, például:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Átváltás fekvő módra
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Átváltás álló módra
        // }
    }
    
  2. A képernyő orientációjának rögzítése: Beállítható fix orientáció az aktivitás számára, a android:screenOrientation attribútum hozzáadásával a manifestben.

    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait" />
    

    vagy

    <activity  
        android:name=".MainActivity"  
        android:screenOrientation="landscape" />
    

    Ebben az esetben az aktivitás orientációja nem változik a készülék forgatásával, és nem fog újra létrejönni.