Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Creando un mini-engine para android con xamarin

Iniciado por XÑA, 05 de Agosto de 2013, 11:00:37 PM

« anterior - próximo »

XÑA


bnl

El problema de que se te reinicie la actividad (no la aplicación) al cambiar la orientación tambien se produce al sacar y meter el teclado en los moviles que tienen teclado fisico extraible.
Se soluciona facilmente metiendo el siguiente atributo a la actividad en el AndroidManifiest.xml

android:configChanges="keyboard|keyboardHidden|orientation"
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

XÑA

Bueno, estoy que me muero con esto de OnConfigurationChange. Este método NO se llama cuando roto el dispositivo!!! He mirado por internet y todos dicen que hay que añadir el ScreenSize, sin embargo, mi target es 2.2, así que no tengo ScreenSize... La cuestión es que NO consigo que se llame a este método y por lo tanto, tampoco sé cuando rota la pantalla. Tengo que usar el sensor para ello....

Lo que me parece alucinante es que algo tan simple NO lo sea... Eso es lo que me bloquea tanto tiempo... :o

bnl

No se si en tu caso te podria servir pero puedes tener un layout especifico para apaisado y otro para vertical.

Otra opcion es manejar el evento surfaceChanged de la clase SurfaceView
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

XÑA

El evento SurfaceChanged no salta, porqué como no cambia la orientación.... :(

TrOnTxU

No estoy muy puesto en lo de Xamarin, pero yo para Android yo lo que hago es pasar del evento de rotación, y obtener el tamaño del surface cada frame. Puede que haya un pequeño "overhead" pero a mi me funciona (al menos con una Native Activity).

Puedes guardar la ultima resolución y compararla con la actual (obtenida el mismo frame), para saber si se ha rotado o no el Device (te basta con el width, por ejemplo).

Tambien comprueba que en el XML permites varias orientaciones y no solo una (si especificas Landscape o Portrait no se detectará la rotación del dispositivo).


Espero haberte ayudado, un saludo.
Vicent: Linked-In  ***  ¡¡Ya tengo blog!!

XÑA

Era eso!!! Tenía ScreenOrientation = ScreenOrientation.Portrait y por lo visto eso hace que no sale el OnConfigurationChange!!

Mil gracias!!!  :D






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.