Sobes.tech
Middle

¿Se puede hacer que la actividad no se vuelva a crear al girar la pantalla?

sobes.tech AI

Respuesta de la IA

Sí, es posible. Hay dos formas principales.

  1. Declarar configChanges en el manifiesto: En AndroidManifest.xml, para <activity> agregar el atributo android:configChanges="orientation|screenSize".

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

    En este caso, la actividad no se recrea, sino que se llama al método onConfigurationChanged(), que debe ser sobrescrito para manejar los cambios de configuración.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Manejar cambios, por ejemplo:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Cambio a orientación horizontal
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Cambio a orientación vertical
        // }
    }
    
  2. Fijar la orientación de la pantalla: Se puede establecer una orientación fija para la actividad, agregando el atributo android:screenOrientation en el manifiesto.

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

    o

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

    En este caso, la orientación de la actividad no cambiará independientemente de la rotación del dispositivo, y no se recreará.