Sobes.tech
Middle

Kas on võimalik tagada, et tegevus ei loo uuesti ekraani pööramisel?

sobes.tech AI

Vastus AI-lt

Jah, see on võimalik. On kaks peamist meetodit.

  1. Deklareerige configChanges manifestis: AndroidManifest.xml failis, <activity> jaoks, lisage atribuut android:configChanges="orientation|screenSize".

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

    Sellisel juhul ei loo tegevus uut, vaid kutsutakse välja meetod onConfigurationChanged(), mida tuleb üle kirjutada konfiguratsioonimuutuste haldamiseks.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Muutuste haldamine, näiteks:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Liikumine horisontaalsesse režiimi
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Liikumine vertikaalsesse režiimi
        // }
    }
    
  2. Ekraani orientatsiooni fikseerimine: Võite määrata fikseeritud orientatsiooni tegevusele, lisades manifesti atribuut android:screenOrientation.

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

    või

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

    Sellisel juhul ei muutu tegevuse orientatsioon, sõltumata seadme pööramisest, ning tegevus ei taaskäivitu.