¿Cómo detectar los cambios de orientación pero dejar que el android los maneje?
Tengo un problema muy similar a esto: Android – ActionBar no cambiar el tamaño con onConfigurationChanged (AppCompat)
Necesito dejar android manejar los cambios de orientación, porque quiero obtener la actividad recreada.
- ¿Qué porcentaje de usuarios de tabletas navega en orientación vertical / horizontal?
- Cómo permitir tanto el paisaje / retrato para tabletas solamente
- Quiero hacer mi aplicación sólo en el paisaje en android
- Android sensorPortrait no funciona para el modo de retrato inverso
- ¿Es posible apoyar ambas orientaciones en algunos tamaños de pantalla pero no en otros?
Pero también, necesito detectar cuando se ha producido un cambio de orientación.
¿Pueden lograrse simultáneamente estas dos necesidades combinadas?
- Android en el cambio de orientación Cambiar
- Al cambiar la orientación de la pantalla, se crea una nueva actividad
- Orientación de la captura de la cámara en dispositivos samsung en android
- Android: screenOrientation = "sensorPortrait" no funciona en API +17
- Parche blanco de aplicación móvil de JQuery que muestra el cambio de orientación en android
- Cambio de fragmentos o actividades (es decir, diseños) en el cambio de orientación
- Barra de acciones de Android La pestaña con scrollview hizo una vista duplicada después del cambio de orientación
- Cómo cambiar la orientación de fragmentos en android
Para detectar la rotación de la Actividad sin interferir con su curso , puede hacer lo siguiente:
@Override public void onConfigurationChanged(Configuration config) { super.onConfigurationChanged(config); // Check for the rotation if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { Toast.makeText(this, "LANDSCAPE", Toast.LENGTH_SHORT).show(); } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){ Toast.makeText(this, "PORTRAIT", Toast.LENGTH_SHORT).show(); } }
Además, usted necesita que usted tiene que asegurarse de que, en su manifiesto, su actividad permite configChanges para la rotación
<activity android:name=".MyActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name">
Importante : A partir de Android 3.2 (API 13+), el "tamaño de pantalla" también cambia cuando el dispositivo cambia entre orientación vertical y horizontal. Si desea evitar que el tiempo de ejecución se reinicie debido al cambio de orientación al desarrollar para ese nivel de API específico (13+), asegúrese de declarar: android:configChanges="orientation|screenSize"
– // –
EDITAR
Utilizando el atributo configChanges
, su actividad no se recreará cuando cambie la configuración .
Puedes encontrar más información en la documentación de Google aquí
Android: configChanges
Muestra los cambios de configuración que la actividad se manejará. Cuando se produce un cambio de configuración en tiempo de ejecución, la actividad se cierra y se reinicia de forma predeterminada, pero declarar una configuración con este atributo evitará que la actividad se reinicie. En su lugar, la actividad permanece en ejecución y se llama a su método onConfigurationChanged ().
Lo que puedes hacer es controlar la rotación con una bandera, y si onConfigurationChanged()
es llamado, puedes llamar a la actividad onCreate()
tú mismo. Si no es así, onCreate () será llamado sólo cuando la Actividad se instancia por primera vez