Sobes.tech
Middle

Може ли се учинити да активност не се поново креира при окретање екрана?

sobes.tech АИ

Одговор од АИ

Da, to je moguće. Postoje dva osnovna načina.

  1. Deklarisati configChanges u manifestu: U AndroidManifest.xml, za <activity>, dodajte atribut android:configChanges="orientation|screenSize".

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

    U ovom slučaju, aktivnost se ne ponovo kreira, već se poziva metoda onConfigurationChanged(), koju je potrebno prepisati za upravljanje promenama konfiguracije.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Obrada promena, na primer:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Prelaz u pejzažni režim
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Prelaz u portret režim
        // }
    }
    
  2. Fiksirati orijentaciju ekrana: Možete postaviti fiksnu orijentaciju za aktivnost, dodavanjem atributa android:screenOrientation u manifest.

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

    ili

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

    U ovom slučaju, orijentacija aktivnosti neće se menjati bez obzira na rotaciju uređaja, i aktivnost neće biti ponovo kreirana.