Tips Android: ¿Tu aplicación se para cuando rotas la pantalla?
Buenos días a todos :-)
Resulta que estaba trabajando en un proyecto para dispositivos móviles multiplataforma, y tras hacer algunas pruebas en terminales de Apple le tocaba el turno a los de Android. Cuando parecía que todo estaba perfecto, le doy la vuelta a la tableta y la aplicación se para saliendo de nuevo al escritorio. Tras poner cara de panoli y acordarme de la madre de todo el que estuviese cerca, me toco buscar el problema.
Parece ser que no soy el único al que le ha pasado esto, gracias a Dios. Todo el problema se encuentra en el fichero AndroidManifest.xml, ¿en qué otro lugar iba a estar? :-)
Generalmente para que la pantalla pueda rotar basta que en nuestra aplicación configuremos la propiedad android:configChanges con el valor orientation.
Pero esto solo funciona hasta la versión 12 de la API de Android. A partir de la 13, que casualmente corresponde a Honeycomb al igual que la 12, para rotar se produce un cambio de tamaño que hay que permitir manualmente. En anteriores versiones esto se gestionaba automáticamente, ahora hay que indicarlo de forma explicita añadiendo screenSize a la propiedad android:configChanges
Como apunte final, puede ser que el compilador te diga que hay un error cuando incluyes la opción screenSize, pero es falso, no te dejes engañar ;-)
Resulta que estaba trabajando en un proyecto para dispositivos móviles multiplataforma, y tras hacer algunas pruebas en terminales de Apple le tocaba el turno a los de Android. Cuando parecía que todo estaba perfecto, le doy la vuelta a la tableta y la aplicación se para saliendo de nuevo al escritorio. Tras poner cara de panoli y acordarme de la madre de todo el que estuviese cerca, me toco buscar el problema.
Parece ser que no soy el único al que le ha pasado esto, gracias a Dios. Todo el problema se encuentra en el fichero AndroidManifest.xml, ¿en qué otro lugar iba a estar? :-)
Generalmente para que la pantalla pueda rotar basta que en nuestra aplicación configuremos la propiedad android:configChanges con el valor orientation.
Pero esto solo funciona hasta la versión 12 de la API de Android. A partir de la 13, que casualmente corresponde a Honeycomb al igual que la 12, para rotar se produce un cambio de tamaño que hay que permitir manualmente. En anteriores versiones esto se gestionaba automáticamente, ahora hay que indicarlo de forma explicita añadiendo screenSize a la propiedad android:configChanges
Como apunte final, puede ser que el compilador te diga que hay un error cuando incluyes la opción screenSize, pero es falso, no te dejes engañar ;-)
Comentarios
Es una buena práctica la de no escribir código que no se sabe lo que hace.
Es una buena práctica eso de no escribir código que no se sabe lo que hace.
Andrew
Pues la verdad es que no tengo datos suficientes para poder ayudarte, necesitaría una descripción más completa y algo de código. Aunque haciendo eso probablemente te puedan ayudar de forma más eficaz en stackoverflow.com :-)
Date cuenta que este tip es tan sólo para forzar el repintado al rotar, pero no necesariamente afecta al layout que se está utilizando. Lamento no poder ayudarte mucho más pero tengo más experiencia en aplicaciones híbridas que nativas de Android :-S
Un saludo.