He creado una ventana emergente que contiene la vista de mes para recoger la fecha. Cuando cambio de orientación, debido a que Android carga una actividad una vez más, mi Ventana emergente desaparece. ¿Cómo puedo abrirlo incluso cuando la orientación cambia en el tiempo de ejecución?¿Cómo mantener abierta la ventana emergente cuando la orientación cambia en el tiempo de ejecución en Android?
Respuesta
incluya android:configChanges="orientation"
en su AndroidManifest.xml en la ventana de visualización de la actividad. Hacer esto le dice a Android que usted va a manejar el cambio de orientación usted mismo y eventualmente no destruirá su actividad y mantendrá la ventana mostrada.
Esta técnica es buena si no tiene diferentes diseños para el modo retrato y paisaje. Sin embargo, si lo hace, es posible que realice implementación personalizada diseño detectando el modo de orientación de la siguiente manera:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
Log.i("orientation", "Orientation changed to: Landscape");
else
Log.i("orientation", "Orientation changed to: Portrait");
}
para previsualizar, descargar e instalar this sample app.
¿Tiene dos diseños diferentes para las orientaciones vertical y horizontal? porque acabo de probar esto en un solo diseño xml para ambas orientaciones y funcionó bien – waqaslam
hmm extraño, porque lo probé en un único diseño y funciona bien. Ver mi demo apk en http://www.2shared.com/file/LdtQTybl/HelloWorld.html – waqaslam
http://speedy.sh/n59h3/HelloWorld.apk – waqaslam
Siempre que haya un cambio de orientación, Android destruye su actividad (llama al onDestroy()
) y luego la reinicia (llama al onCreate()
).
Tan pronto como aparezca su ventana emergente, establezca un indicador popup_open=1
. Su ventana emergente tendrá, naturalmente, un botón de descartar. Establezca el indicador = 0 en el controlador de clic de este botón. A continuación, puede volver a abrir la ventana emergente cuando la aplicación se reinicia en el método onRestoreInstanceState()
o en el onCreate()
. Aquí harías un control de la bandera. Si la bandera está configurada en 1, abre la ventana emergente. Por lo tanto, incluso si la orientación cambió mientras la ventana emergente estaba activa, onRestoreInstanceState()
sabrá qué hacer en función del estado de la bandera. Para obtener más información de referencia: How to handle runtime changes.
asumiremos que su ventana emergente tiene algún botón para que el usuario la cierre. En el controlador de clic de este botón, tendría 'popup_open = 0'. Establezca 'popup_open = 1' tan pronto como se inicie su ventana emergente. Entonces, si la ventana emergente está abierta y la orientación cambia, la bandera no se habría establecido en 0 y, por lo tanto, 'onRestoreInstanceState()' debería arreglar todo. Editaré mi respuesta para manejar la configuración de la bandera con la ventana emergente en lugar de onSaveInstanceState hacerlo. – Urban
sí, así que estaba tratando de decir que debe establecer el indicador en este método 'OnClick()' que contiene el objeto emergente. Anteriormente había sugerido establecer la bandera en 'onSaveInstanceState'. – Urban
Creo que te estás confundiendo. ¿Por qué intentas registrar onSaveInstance? Como sugiere el nombre de este método, este método se llama justo antes de destruir la aplicación (es decir, inmediatamente después del cambio de orientación, cuando Android está a punto de reiniciar su aplicación). Debe verificar el valor en CUALQUIER 'onRestoreInstanceState()' O 'onCreate() '. Eche un vistazo al enlace que he dado en mi respuesta. – Urban
Añadir esta propiedad a su actividad en manifest.xml
android:configChanges="orientation|keyboard"
y que debe hacerlo.
Algunas personas simplemente no pueden quitar sus manos del botón de abajo, si mi respuesta era incorrecta, ¿esa persona podría explicarme por qué? –
Mostrando PopupWindow como
final View parent = findViewById(R.id.{parentId});
parent.post(new Runnable() {
@Override
public void run() {
mPopup.showAtLocation(parent, ...);
}
});
resuelve excepción no controlada en el cambio de orientación
- 1. Cambiar la orientación en tiempo de ejecución
- 2. Actividad de Android reiniciada cuando la orientación cambia
- 3. La orientación de la pantalla del controlador cambia cuando hay AsyncTasks en ejecución
- 4. Tamaño de la ventana emergente en android
- 5. Android determina la orientación de la pantalla en tiempo de ejecución
- 6. emergente posición abierta en cromo
- 7. Cómo bloquear la orientación durante el tiempo de ejecución
- 8. Ventana emergente programada en Android
- 9. cambiar la URL de una ventana emergente ya abierta
- 10. Interceptar el botón Menú de Android en una ventana emergente
- 11. ¿Cómo crear una ventana emergente en android?
- 12. iOS 6 - Cómo ejecutar código personalizado cuando cambia la orientación
- 13. ¿Cómo obtener PowerShell para mantener abierta una ventana de comando?
- 14. Cómo evitar cambios en la IU de Android, cuando el teclado está activo o se cambia la orientación?
- 15. Actualizar ventana padre cuando la ventana emergente está cerrada
- 16. solo una ventana de marco abatible abierta en el tiempo
- 17. ¿Cómo obtener la URL de la pestaña abierta actualmente en la ventana emergente de mi acción de página?
- 18. Ventana emergente en Java Swing
- 19. Cómo cerrar la ventana emergente y redireccionar la ventana principal
- 20. Cómo ocultar ventana emergente de Gtk cuando el usuario hace clic fuera de la ventana
- 21. Problemas para crear una ventana emergente en la Actividad Android
- 22. Android: primer diálogo emergente de ejecución
- 23. Deshabilitar la ventana emergente de "batería baja" de Android
- 24. ¿La función de incendio antes de la ventana cambia el tamaño del contenido en el cambio de orientación?
- 25. Ventana emergente en winforms
- 26. Android: mantener MediaPlayer ejecutándose durante la actualización de la orientación de la pantalla de actividad
- 27. detectando cuando la ventana emergente "Descarga de archivo" está cerrada
- 28. ¿Cambia los valores enum en el tiempo de ejecución?
- 29. cómo animar ventana emergente de abajo hacia arriba en Android
- 30. El scherlock de barra de acciones no se actualiza cuando se cambia la orientación
también se puede leer este http://blog.doityourselfandroid.com/2010/11/14/handling-progress-dialogs- y-screen-orientation-changes/ –