Sobes.tech
Middle

Ar įmanoma užtikrinti, kad veikla nebūtų iš naujo sukurta ekrano pasukimo metu?

sobes.tech AI

Atsakymas iš AI

Taip, tai įmanoma. Yra du pagrindiniai būdai.

  1. Deklaruoti configChanges manifeste: AndroidManifest.xml faile, <activity> elemente, pridėkite atributą android:configChanges="orientation|screenSize".

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

    Tokiu atveju, veikla nėra iš naujo sukurta, o kviečiama onConfigurationChanged() metodas, kurį reikia perrašyti, kad tvarkytumėte konfigūracijos pokyčius.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Tvarkyti pokyčius, pavyzdžiui:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Perėjimas į horizontalią režimą
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Perėjimas į vertikalią režimą
        // }
    }
    
  2. Nustatyti ekrano orientaciją fiksuotą: Galite nustatyti fiksuotą orientaciją veiklai, pridėdami atributą android:screenOrientation į manifestą.

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

    arba

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

    Tokiu atveju, veiklos orientacija nesikeis, nepriklausomai nuo įrenginio pasukimo, ir ji nebus iš naujo sukurta.