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.
-
Deklaruoti
configChangesmanifeste:AndroidManifest.xmlfaile,<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ą // } } -
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.