Sobes.tech
Middle

Este posibil ca activitatea să nu fie recreată la rotirea ecranului?

sobes.tech AI

Răspuns de la AI

Da, este posibil. Există două metode principale.

  1. Declarați configChanges în manifest: În AndroidManifest.xml, pentru <activity>, adăugați atributul android:configChanges="orientation|screenSize".

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

    În acest caz, activitatea nu se recreează, ci se apelează metoda onConfigurationChanged(), care trebuie suprascrisă pentru a gestiona schimbările de configurație.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Gestionați schimbările, de exemplu:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Trecere în modul peisaj
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Trecere în modul portret
        // }
    }
    
  2. Fixați orientarea ecranului: Se poate seta o orientare fixă pentru activitate, adăugând atributul android:screenOrientation în manifest.

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

    sau

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

    În acest caz, orientarea activității nu se va schimba indiferent de rotirea dispozitivului, iar activitatea nu va fi recreată.