Middle
Може ли да се направи така, че активността да не се презадава при завъртане на екрана?
sobes.tech AI
Отговор от AI
Да, възможно е. Има два основни начина.
-
Декларирайте
configChangesв манифеста: ВAndroidManifest.xml, за<activity>, добавете атрибутаandroid:configChanges="orientation|screenSize".<activity android:name=".MainActivity" android:configChanges="orientation|screenSize" />В този случай активността не се пресъздава, а се извиква методът
onConfigurationChanged(), който трябва да бъде преписан за обработка на промените в конфигурацията.override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) // Обработка на промените, например: // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // // Превключване към пейзажен режим // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // // Превключване към портретен режим // } } -
Фиксирайте ориентацията на екрана: Може да зададете фиксирана ориентация за активността, като добавите атрибута
android:screenOrientationв манифеста.<activity android:name=".MainActivity" android:screenOrientation="portrait" />или
<activity android:name=".MainActivity" android:screenOrientation="landscape" />В този случай ориентацията на активността няма да се променя независимо от завъртането на устройството, и активността няма да бъде пресъздадена.