Sobes.tech
Middle

Je možné zabezpečiť, aby sa aktivita pri otáčaní obrazovky neznova vytvárala?

sobes.tech AI

Odpoveď od AI

Áno, je to možné. Existujú dva hlavné spôsoby.

  1. Deklarovať configChanges v manifeste: V AndroidManifest.xml, pre <activity>, pridajte atribút android:configChanges="orientation|screenSize".

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

    V tomto prípade sa aktivita neprekré, ale volá sa metóda onConfigurationChanged(), ktorú je potrebné prepísať na spracovanie zmien konfigurácie.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Spracovanie zmien, napríklad:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Prechod na režim na šírku
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Prechod na režim na výšku
        // }
    }
    
  2. Fixovať orientáciu obrazovky: Je možné nastaviť pevný orientačný režim pre aktivitu, pridaním atribútu android:screenOrientation do manifestu.

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

    alebo

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

    V tomto prípade sa orientácia aktivity nezmení bez ohľadu na otáčanie zariadenia, a aktivita nebude znovu vytvorená.