Sobes.tech
Middle

Vai ir iespējams nodrošināt, ka aktivitāte netiek atkārtoti izveidota ekrāna pagriešanas laikā?

sobes.tech AI

Atbilde no AI

Jā, tas ir iespējams. Ir divi galvenie veidi.

  1. Deklarēt configChanges manifestā: AndroidManifest.xml failā, priekš <activity>, pievienojiet atribūtu android:configChanges="orientation|screenSize".

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

    Šādā gadījumā aktivitāte netiek pārveidota, bet tiek izsaukta metode onConfigurationChanged(), kuru nepieciešams pārdefinēt konfigurācijas izmaiņu apstrādei.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Apstrādāt izmaiņas, piemēram:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Pāreja uz horizontālo režīmu
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Pāreja uz portretu
        // }
    }
    
  2. Fiksēt ekrāna orientāciju: Ir iespējams iestatīt fiksētu orientāciju aktivitātei, pievienojot atribūtu android:screenOrientation manifestā.

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

    vai

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

    Šādā gadījumā aktivitātes orientācija nemainīsies neatkarīgi no ierīces apgriešanas, un tā netiks pārveidota.