studio - Cambia la orientación de la pantalla en Android sin recargar la actividad.
manejando la rotación de pantalla en android studio (5)
Debe sobrescribir OnSaveInstanceState (Bundle savedInstanceState) y escribir los valores de estado de la aplicación que desea cambiar al parámetro Bundle
Quiero cambiar la orientación programáticamente mientras ejecuto mi aplicación Android, con estas líneas de código:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
Funcionan hasta ahora, pero el problema principal es que toda la actividad se vuelve a cargar cuando cambia la orientación de la pantalla, y no quiero eso. ¿Es posible? Gracias.
EDIT: OK, después de que yo, mientras averiguaba lo que me faltaba. Tuve que incluir también "screenSize" en la propiedad configChanges, por lo que al tener
android:configChanges="orientation|screenSize"
Resuelto todo el asunto.
En el archivo AndroidManifest, agregue android:configChanges="orientation"
para la actividad que desea manejar esta orientación
En la actividad utilice el método anulado onConfigurationChange. Haga la tarea que desea manejar en el cambio de orientación.
Llama a este método y configura el archivo de manifiesto.
android:configChanges="orientation|screenSize|keyboardHidden"
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
Respondió aquí
Android, ¿cómo no destruir la actividad cuando giro el dispositivo?
Añadir:
android:configChanges="orientation"
A tu androidmanifest.
ver:
http://developer.android.com/guide/topics/manifest/activity-element.html#config
Ver la edición por @luisfer. Para apuntar a Android 3.2 y superior, necesita AMBOS
android:configChanges="orientation|screenSize"
http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange