Italian [Risolto] B4J/B4XPages FullScreen problemi vari...

XorAndOr

Active Member
Licensed User
Longtime User
Ciao
L'obiettivo è: una volta aperta l'app dovrebbe rimanere "sempre" in full screen
senza "sfarfallamenti" tra una pagina e l'altra.

Problemi :
1) si nota il cambio pagina in full screen
2) tornando in main ho il designer a 600x600
3) non riesco a centrare in fullscreen i button sia quello che chiama pagina 2 sia il button di ritorno a main.
Mentre le view in alto a sinistra e a destra e sotto a sinistra e destra sono regolari usando l'ancor.
4) Poi se torno da pagina 2 a main...in main mi ritorna a 600x600...perchè?

Ho messo il codice per il full screen in main (non dovrei) ma se lo metto in b4xmainpages esce un avviso di windows di premere ESC per uscire
dalla modalità fullscreen (non mi piace sta cosa)
Allego esempio
Grazie
 

Attachments

  • AppFullScreen.zip
    5.7 KB · Views: 9

giannimaione

Well-Known Member
Licensed User
Longtime User
in genere con b4xpages, nella B4XMainPages, scrivo solo poco codice, quello necessario per avviare una pagina principale "PARTENZA";
nella "Main", di solito, non modifico quasi nulla;
in "PARTENZA" attivo fullscreen in "Private Sub B4XPage_Appear"
per le altre pagine eseguo B4XPages.ShowPageAndRemovePreviousPages("Vendita") e sempre in "Private Sub B4XPage_Appear" (vendita) attivo fullscreen;
B4X:
Dim form As Form = B4XPages.GetNativeParent(Me)
xsetView (form)

B4X:
Public Sub xsetView (form As Form)
    Dim joForm As JavaObject = form
    Dim joStage As JavaObject = joForm.GetField("stage")
    joStage.RunMethod("setMaximized", Array(True))
End Sub
 

klaus

Expert
Licensed User
Longtime User
Try the attached project.
I put this code in Main.
B4X:
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    MainForm.SetFormStyle("UNDECORATED")
    Dim jform As JavaObject = MainForm
    Dim jStage As JavaObject=jform.GetFieldJO("stage")
    jStage.RunMethod("setMaximized", Array(True))
    jStage.RunMethod("setFullScreen", Array(True))
    jStage.RunMethod("setFullScreenExitKeyCombination", Array(jform.InitializeStatic("javafx.scene.input.KeyCombination").GetField("NO_MATCH")))
    MainForm.AlwaysOnTop=True
And changed the creation of page 2 and the return from page 2 to MainPage.
 

Attachments

  • AppFullScreen1.zip
    5.1 KB · Views: 9

XorAndOr

Active Member
Licensed User
Longtime User
Thanks @klaus
sorry for the english translation
but what I'm trying to do is that the app once it goes in full screen must stay in that mode
Let me explain....
the b4xmain page is correct...it stays in full screen here everything is ok
page 2 is not correct...
If I put the mouse up at the top of screen, it moves if I drag it.... and then I see the icon bar at the bottom of windows
I would like if possible to make page 2 like the b4xmainpage all in full screen Even if there is that little page swap between the b4xmainpage and page 2
To make you understand there are game apps that once they open in full screen, remain in that mode. Only pressing the exit button should close the app

Ma quello che sto cercando di fare è che l'app una volta che va a schermo intero deve rimanere in quella modalità mi spiego.... la pagina b4xmain è corretta... rimane a schermo intero qui è tutto ok la pagina 2 non è corretta... Se metto il mouse in alto sullo schermo, si muove se lo trascino.... e poi vedo la barra delle icone di windows in fondo. Vorrei se possibile rendere la pagina 2 come la b4xmainpage tutta a schermo intero Anche se c'è quel piccolo scambio di pagina tra la b4xmainpage e la pagina 2 Per far capire, ci sono app di gioco che una volta aperte a schermo intero, rimangono in quella modalità. Solo premendo il pulsante di uscita si dovrebbe chiudere l'app
 

klaus

Expert
Licensed User
Longtime User
Have you tested the project from my prvious post ?
I get this, Main page:

1730807582408.png


And Page 2:

1730807650207.png


And when I go back to Main page the screen shows the first image.
 

LucaMs

Expert
Licensed User
Longtime User
And when I go back to Main page the screen shows the first image.
I tried your project, Klaus, and when I returned to the B4XMainPage, the form was no longer full screen.

I attach my test; the code that sets the full screen is written in a code module and mainly it is called from the B4XPage_Appear event.

Unfortunately the flickering remains.
 

Attachments

  • lmAppFullScreen.zip
    6.4 KB · Views: 9
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
Con B4XPages si apre sempre un nuovo form e un movimento si vedrà sempre anche minimo.
Altrimenti usi un sistema diverso, che tutte i Layout vengano caricati sullo stesso form .... un TablePage ad esempio ..
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Si ma ho voluto provare. Anche in un progetto non-B4XPages, quando visualizzi un form questo sembra partire da una dimensione iniziale inferiore a quella che imposti, per poi ingrandirsi fino a quella definita. Già eliminando questo sarebbe qualcosa, anche in un progetto B4XPages.
 

XorAndOr

Active Member
Licensed User
Longtime User
Non so come fanno con certi programmi-app-game che siano, ma ho visto che una volta che apri il programma questo và in full screen
la logica di funzionamento avviene all'interno dell'app, è come inoltrarsi in un tunnel
e se non premi il button di uscita che hanno creato...l'unico modo per uscire e CTRL alt cancel senza finestre e finestrini
L'idea è creare un app simile
 

LucaMs

Expert
Licensed User
Longtime User
Hai creato un progetto B4XPages, malgrado mi sembra che tu voglia sviluppare soltanto in B4J.

Forse potresti usare un trucco (ma prova tu che io avrei altro da fare). Crea un form base, a tutto schermo e vuoto. Quando poi devi visualizzare i form-pagine, imposta il loro valore Alpha su zero, prima di chiamare la routine del modProjHelper, aggiungi uno sleep(200) (valore da valutare) e poi reimposta Alpha su 1.

Ovviamente il form base dovrà essere dello stesso colore di quelli B4XPage.
 

LucaMs

Expert
Licensed User
Longtime User
Hai creato un progetto B4XPages, malgrado mi sembra che tu voglia sviluppare soltanto in B4J.

Forse potresti usare un trucco (ma prova tu che io avrei altro da fare). Crea un form base, a tutto schermo e vuoto. Quando poi devi visualizzare i form-pagine, imposta il loro valore Alpha su zero, prima di chiamare la routine del modProjHelper, aggiungi uno sleep(200) (valore da valutare) e poi reimposta Alpha su 1.

Ovviamente il form base dovrà essere dello stesso colore di quelli B4XPage.
No, resterebbe quel form "disponibile". Come non detto.
 
Top