Spanish [SOLUCIONADO] Bloquear la orientación en B4XPages

aspi

Member
Licensed User
Longtime User
Hola a todos.

Al igual que muchos, llevaba varios años queriendo hacer app para android.
Así que he empezado un proyecto con B4XPages.

Según dice Erel, una de las limitaciones es la orientación de las páginas, así que la primera en la frente.

He probado de distintas maneras y no consigo bloquear la rotación, como por ejemplo:

B4X:
#SupportedOrientations: portrait

ph.SetScreenOrientation(1)

j.RunMethod("jLockUnLock_ScreenOrientation",Array(True))

¿ Alguna sugerencia ?
Saludos desde Murcia.

Encontré la solución.

Primero se configura/bloquea la orientación inicial:
Manifest:
SetActivityAttribute(main, android:screenOrientation, "sensorLandscape")

A mí sólo me funciona con 'sensorLandscape'. Las posibles opciones son:

android:screenOrientation=["unspecified" | "behind" |
"landscape" | "portrait" |
"reverseLandscape" | "reversePortrait" |
"sensorLandscape" | "sensorPortrait" |
"userLandscape" | "userPortrait" |
"sensor" | "fullSensor" | "nosensor" |
"user" | "fullUser" | "locked"]

Con eso, consigo que arranque la app en horizontal.

Inmediatamente después, fuerzo la orientación vertical:
Main:
Sub Activity_Create(FirstTime As Boolean)

    Dim ph As Phone
    ph.SetScreenOrientation(1)

Si configuro SetScreenOrientation con 7, consigo girar 180º (vertical).
Con 0 y 8, la orientación cambia a horizontal.

Nota: cuando el dispositivo está en posición vertical, tiene un comportamiento un tanto peculiar:
  • si el conector USB está abajo:
    • las dos opciones verticales (0º y 180º) se comportan como 0º (no cambia la orientación).
    • si le doy la vuelta al dispositivo (vertical), él solo hace el giro de 180º.
  • si el USB está arriba:
    • las 4 opciones funcionan correctamente. Puedo controlar la rotación.
En cambio, las opciones horizontales funcionan siempre, sea cual sea la orientación del dispositivo.

Imagino que este funcionamiento dependerá de la combinación de android / fabricante / modelo.

Espero que sea de ayuda para otros.
 
Last edited:

josejad

Expert
Licensed User
Longtime User
Hola aspi:

No entiendo muy bien este post. En principio, B4XPages solo soporta una orientación (esto hace que se facilite mucho el trabajo ya que las variabes, etc.. se ven menos afectadas por el ciclo de vida de Android al hacer un giro de pantalla.

De hecho, cuando abres un nuevo proyecto B4XPages, ya aparece esto en main:

B4X:
#Region  Project Attributes 
    #ApplicationLabel: B4A Example
    #VersionCode: 1
    #VersionName: 
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: portrait  '<---- ESTA LÍNEA BLOQUEA LA ORIENTACIÓN AL MODO PORTRAIT
    #CanInstallToExternalStorage: False
#End Region

Aquí tienes un manual en español de B4XPages traducido por @Mariano Ismael Castro
 

aspi

Member
Licensed User
Longtime User
Hola José.

Eso tenía entendido y de hecho cuando he hecho algo con actividades funcionaba correctamente, pero a mí, con B4XPages, la orientación me cambia al girar.

La única manera que he encontrado para bloquear el giro de pantalla ha sido de esa manera.

Como verás en mi mensaje explicando la limitación de orientación con B4XPages, lo primero que hice fue #SupportedOrientations: portrait sin exito alguno.
 

aspi

Member
Licensed User
Longtime User
Hola José.

Eso tenía entendido y de hecho cuando he hecho algo con actividades funcionaba correctamente, pero a mí, con B4XPages, la orientación me cambia al girar.

La única manera que he encontrado para bloquear el giro de pantalla ha sido de esa manera.

Como verás en mi mensaje explicando la limitación de orientación con B4XPages, lo primero que hice fue #SupportedOrientations: portrait sin exito alguno.
Hola de nuevo, José.

Desactivando la función que utilizo para controlar la orientación, en tres teléfonos (android 12 y anteriores), #SupportedOrientations: portrait funciona correctamente.

En la tablet con android 13 no hay manera, la orientación va cambiando en las 4 posiciones.

La única manera de que funcione en la tablet ha sido como explico en el primer post.

¿ Será por la versión 13 ?

Un saludo.
 

josejad

Expert
Licensed User
Longtime User
Hola:

¿Cómo estas creando el proyecto B4XPages? Qué versión de B4A tienes? Puedes subir alguno de los proyectos que mencionas o alguno básico en el que te cambie la orientacion?
 
Last edited:
Top