Middle
É possível fazer com que a atividade não seja recriada ao girar a tela?
sobes.tech IA
Resposta da IA
Sim, é possível. Existem duas formas principais.
-
Declarar
configChangesno manifesto: NoAndroidManifest.xml, para<activity>, adicionar o atributoandroid:configChanges="orientation|screenSize".<activity android:name=".MainActivity" android:configChanges="orientation|screenSize" />Neste caso, a atividade não é recriada, mas o método
onConfigurationChanged()é chamado, e deve ser sobrescrito para lidar com as mudanças de configuração.override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) // Lidar com mudanças, por exemplo: // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // // Mudança para modo paisagem // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // // Mudança para modo retrato // } } -
Fixar a orientação da tela: Pode-se definir uma orientação fixa para a atividade, adicionando o atributo
android:screenOrientationno manifesto.<activity android:name=".MainActivity" android:screenOrientation="portrait" />ou
<activity android:name=".MainActivity" android:screenOrientation="landscape" />Neste caso, a orientação da atividade não mudará independentemente da rotação do dispositivo, e ela não será recriada.