Italian Nascondere NavigationBar

Fulvio75

Well-Known Member
Licensed User
Ciao come si fa a nascondere la navigation bar in un progetto non B4Xpages?
C'è un esempio ma è solo per B4XPage infatti su un progetto standard mi dice:

B4A Versione: 12.50
Analisi del Codice. Error
Errore Analisi Programma.
Descrizione errore: Tipo sconosciuto: b4xmainpage
Manca un riferimento ad una libreria?
Errore nella linea: 73 (B4XPages)
Public Sub MainPage As B4XMainPage
 

Fulvio75

Well-Known Member
Licensed User
però va in crash quando perde il focus è l'attesa... sleep(300) non va bene stò aumentando il valore
 

Sagenut

Expert
Licensed User
Longtime User
L'immersive mode si usa nello stesso modo sia nei progetti Activity che in quelli B4XPages.
Se il tuo progetto è addirittura Activity deve funzionare per forza visto che era nato al tempo.
Nota bene che devi testare in Release, l'immersive mode in debug ha problemi.
 
Last edited:

Fulvio75

Well-Known Member
Licensed User
L'immersive mode si usa nello stesso modo sia nei progetti Activity che in quelli B4XPages.
Se il tuo progetto è addirittura Activity deve funzionare per forza visto che era nato al tempo.
Nota bene che devi testare in Release, l'immersive mode in debug ha problemi.
Ok
 

Fulvio75

Well-Known Member
Licensed User
E' molto instabile anche in release, a volte l'applicazione si apre senza problemi, altre va in crash continuamente fino a quando non faccio pulisci progetto, poi funziona ancora per un po di volte poi crash nuovamente
 

Fulvio75

Well-Known Member
Licensed User
va in Crash sempre qui, appena viene richiamata la sub

Sub Activity_WindowFocusChanged(HasFocus As Boolean)
'
' If HasFocus = True And Functions.DebugModeStatus = False Then
'
' Try
' Dim jo As JavaObject = Activity
' Sleep(600)
' jo.RunMethod("setSystemUiVisibility", Array As Object(5894)) '3846 - non-sticky
' Catch
' Log("error")
' End Try
'
' End If
'
'End Sub
 

Sagenut

Expert
Licensed User
Longtime User
Puoi fare un piccolo progetto di esempio?
Lo Sleep dovrebbe funzionare a 300 come da esempio base.
Per gestire il Notch c'è anche da aggiungere qualcosa nel Manifest
Leggi quì
https://www.b4x.com/android/forum/threads/immersive-mode-with-notch-area-support.100636/
B4X:
SetApplicationAttribute(android:theme, "@style/CustomTheme")

CreateResource(values, theme.xml,
<resources>
    <style name="CustomTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
    </style>
</resources>)
 

Fulvio75

Well-Known Member
Licensed User
errore sempre li


Error occurred on line: 244 (Main)
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference
at anywheresoftware.b4a.shell.Shell.runGoodChain(Shell.java:479)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:293)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:157)
at af.software.gauges.main.onWindowFocusChanged(main.java:186)
at com.android.internal.policy.DecorView.onWindowFocusChanged(DecorView.java:1518)
at android.view.View.dispatchWindowFocusChanged(View.java:12775)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1456)
at android.view.ViewRootImpl.handleWindowFocusChanged(ViewRootImpl.java:2590)
at android.view.ViewRootImpl.access$900(ViewRootImpl.java:133)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4191)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6762)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 

Sagenut

Expert
Licensed User
Longtime User
Ho provato l'esempio di @LucaMs ed ha funzionato.
Anche se l'ho avviato solo un paio di volte.
 

Fulvio75

Well-Known Member
Licensed User
va in errore sempre qui in qualsiasi modo, devo commentare questo però non so se funziona

'Sub Activity_WindowFocusChanged(HasFocus As Boolean)
'
' If HasFocus = True And Functions.DebugModeStatus = False Then
'
' Try
' Dim jo As JavaObject = Activity
' Sleep(300)
' jo.RunMethod("setSystemUiVisibility", Array As Object(5894)) '3846 - non-sticky
' Catch
' Log("error")
' End Try
'
' End If
'
'End Sub
 

Sagenut

Expert
Licensed User
Longtime User
Ma quel
If HasFocus = True And Functions.DebugModeStatus = False Then
da dove viene?
Può essere quello che manda in errore?
Non c'è nella versione originale.
 

Fulvio75

Well-Known Member
Licensed User
Ma quel
If HasFocus = True And Functions.DebugModeStatus = False Then
da dove viene?
Può essere quello che manda in errore?
Non c'è nella versione originale.
È una verifica che faccio praticamente controllo se b4a è in modalità debug perché in debug crusha sempre mentre in release lo fa ogni tanto tipo 8 avvii va bene poi crascha per un po', comunque commentando quello che sta nella sub Activity_WindowFocusChanged funziona, non capisco perché crascha subito anche senza eseguire il codice interno alla sub mentre se commento l'interno va
 

Sagenut

Expert
Licensed User
Longtime User
Ma quella Sub viene richiamata perchè è già stata eseguita la parte di codice per l'immersive.
Prova questo, che è il progetto di @LucaMs con il controllo per il Debug.
 

Attachments

  • ImmersiveModeNoPages.zip
    9.5 KB · Views: 45

LucaMs

Expert
Licensed User
Longtime User
All'epoca non trovai una soluzione.

La cosa migliore è scrivere solo progetti B4XPages, che risolve molti problemi. In questo caso, se l'app ha una sola Activity, come è di solito un progetto B4XPages, il problema dovrebbe essere risolto.
 
Top