Italian Nascondere NavigationBar

Sagenut

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.
Se non ho capito male il suo progetto è basato su Activity.
 

Fulvio75

Well-Known Member
Licensed 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.
ok allora lascio perdere
 

Filippo

Expert
Licensed User
Longtime User
ok allora lascio perdere
Non c'è bisogno di lasciar perdere, prova così:
1. usa la library AppCompat
2. inserisci queste righe nel Manifest( i colori li puoi cambiare a piacere tuo)

B4X:
'************ Android-Themen ************
SetApplicationAttribute(android:theme, "@style/MyAppTheme")
CreateResource(values, theme.xml,
<resources>
    <style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#607D8B</item>
        <item name="colorPrimaryDark">#455A64</item>
        <item name="colorAccent">#607D8B</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:navigationBarColor">#000000</item>
    </style>

<style name="ToolbarMenu" parent="Base.ThemeOverlay.AppCompat.ActionBar">
    <item name="android:textColorPrimary">#fff</item>
    <item name="android:colorBackground">#0098FF</item>
   </style>
</resources>
)
'End of Android-Themen

Nella Activity inserisci queste 4 righe:
B4X:
#Region  Activity Attributes
    #FullScreen: true
    #IncludeTitle: false
#End Region

Quello che non sopporto è che a ogni problema con le Activity, si consiglia sempre di usare le B4xPage!
A me queste B4xPage mi sono diventate quasi antipatiche, per questo non le uso.
 

Fulvio75

Well-Known Member
Licensed User
Non c'è bisogno di lasciar perdere, prova così:
1. usa la library AppCompat
2. inserisci queste righe nel Manifest( i colori li puoi cambiare a piacere tuo)

B4X:
'************ Android-Themen ************
SetApplicationAttribute(android:theme, "@style/MyAppTheme")
CreateResource(values, theme.xml,
<resources>
    <style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#607D8B</item>
        <item name="colorPrimaryDark">#455A64</item>
        <item name="colorAccent">#607D8B</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:navigationBarColor">#000000</item>
    </style>

<style name="ToolbarMenu" parent="Base.ThemeOverlay.AppCompat.ActionBar">
    <item name="android:textColorPrimary">#fff</item>
    <item name="android:colorBackground">#0098FF</item>
   </style>
</resources>
)
'End of Android-Themen

Nella Activity inserisci queste 4 righe:
B4X:
#Region  Activity Attributes
    #FullScreen: true
    #IncludeTitle: false
#End Region

Quello che non sopporto è che a ogni problema con le Activity, si consiglia sempre di usare le B4xPage!
A me queste B4xPage mi sono diventate quasi antipatiche, per questo non le uso.
Ok grazie mille provo...
Io mi trovo bene con le Activity le Pages mi danno un po' del complicato poi magari sbaglio idea personale, con le Activity mi trovo bene sono più semplici da vedere e gestire a vista di scrittura.
 

Sagenut

Expert
Licensed User
Longtime User
@Fulvio75
Hai provato il mio esempio con il controllo se l'app è in debug?
Perché dove lo esegui tu è sbagliato.
La sub che ti crea problemi viene richiamata dal codice per l' Immersive che è in Activity_Create.
Se risolvi con il codice di @Filippo meglio ancora, soluzione che studierò anche io. :)
 

Fulvio75

Well-Known Member
Licensed User
@Fulvio75
Hai provato il mio esempio con il controllo se l'app è in debug?
Perché dove lo esegui tu è sbagliato.
La sub che ti crea problemi viene richiamata dal codice per l' Immersive che è in Activity_Create.
Se risolvi con il codice di @Filippo meglio ancora, soluzione che studierò anche io. :)
Lo eseguo in activitycreate come da originale
 

LucaMs

Expert
Licensed User
Longtime User
Quello che non sopporto è che a ogni problema con le Activity, si consiglia sempre di usare le B4xPage!
Io le consiglio anche se non si hanno problemi con le Activity, per il semplice fatto che i vantaggi sono tanti, lo svantaggio uno solo: il singolo orientamento dell'app.

Consiglio anche a me stesso di usare il minor numero di librerie possibile (nota grammaticale perché mi rode che abbiamo giornalisti capre. Scriverebbero: "il minor numero di librerie possibili :mad: 😁), visto che poi devi sperare che vengano mantenute aggiornate.

Cmq, B4XPages potrebbe non risolvere il problema. Lo avevo pensato (si fa per dire, forse 2 secondi) perché il problema dell'immersive mode è che la routine-evento Activity_WindowFocusChanged potrebbe non scattare al momento giusto e mandare in crash l'app, quindi avendo un'unica Activity non ci sarebbe il passaggio da una all'altra e quell'evento non scatterebbe, cambiando da una B4XPage ad un'altra. Però scatterebbe quando l'app venisse messa in pausa, quindi con la possibilità che il problema si presenti ugualmente.
 

Fulvio75

Well-Known Member
Licensed User
Io le consiglio anche se non si hanno problemi con le Activity, per il semplice fatto che i vantaggi sono tanti, lo svantaggio uno solo: il singolo orientamento dell'app.

Consiglio anche a me stesso di usare il minor numero di librerie possibile (nota grammaticale perché mi rode che abbiamo giornalisti capre. Scriverebbero: "il minor numero di librerie possibili :mad: 😁), visto che poi devi sperare che vengano mantenute aggiornate.

Cmq, B4XPages potrebbe non risolvere il problema. Lo avevo pensato (si fa per dire, forse 2 secondi) perché il problema dell'immersive mode è che la routine-evento Activity_WindowFocusChanged potrebbe non scattare al momento giusto e mandare in crash l'app, quindi avendo un'unica Activity non ci sarebbe il passaggio da una all'altra e quell'evento non scatterebbe, cambiando da una B4XPage ad un'altra. Però scatterebbe quando l'app venisse messa in pausa, quindi con la possibilità che il problema si presenti ugualmente.
Ho una sola Activity e quando metto in pausa l'app la chiudo qui di il problema non sussiste, elimino la sub?
Devo provare il modo di Filippo
 

LucaMs

Expert
Licensed User
Longtime User
Io mi trovo bene con le Activity le Pages mi danno un po' del complicato poi magari sbaglio idea personale, con le Activity mi trovo bene sono più semplici da vedere e gestire a vista di scrittura.
Non sono convinto d'aver capito bene. Se intendi dire che con le Activity il codice sorgente che scrivi è ben separato, in quanto si trova in separati "moduli Activity", lo stesso è con le B4XPages, ogni pagina è una classe e contiene il proprio sorgente. Dal punto di vista grafico, ogni pagina ha il proprio panello Root, quindi non vedo il problema.

Il punto, forse, è che molti non hanno chiarissimo il concetto di "classe", che è importantissimo in qualunque linguaggio e per qualunque dispositivo.
 

LucaMs

Expert
Licensed User
Longtime User
C'è un altro punto da considerare: il motivo per cui non vuoi la navigation bar.
Se è per avere quei 25dip in più... ne vale la pena?
Se è per impedire che venga premuto il tasto "back", basta gestirne l'evento.
 

LucaMs

Expert
Licensed User
Longtime User
Ho una sola Activity e quando metto in pausa l'app la chiudo qui di il problema non sussiste, elimino la sub?
No, non credo, perché probabilmente quella riga:

jo.RunMethod("setSystemUiVisibility", Array As Object(5894)) '3846 - non-sticky

deve essere eseguita almeno una volta, quando l'app parte (ma quando con certezza l'Activity abbia il focus)
 

Fulvio75

Well-Known Member
Licensed User
No, non credo, perché probabilmente quella riga:

jo.RunMethod("setSystemUiVisibility", Array As Object(5894)) '3846 - non-sticky

deve essere eseguita almeno una volta, quando l'app parte (ma quando con certezza l'Activity abbia il focus)
Appena riesco provo a chiamarla X e lanciarla da create come l'originale almeno non è soggetta a evento poi provo il modo di Filippo e vediamo di capire quale funziona meglio per il caso almeno se qualcuno ha lo stesso problema la soluzione c'è
 

LucaMs

Expert
Licensed User
Longtime User
Appena riesco provo a chiamarla X e lanciarla da create come l'originale almeno non è soggetta a evento poi provo il modo di Filippo e vediamo di capire quale funziona meglio per il caso almeno se qualcuno ha lo stesso problema la soluzione c'è
A me risulta che quella riga venga eseguita nella routine-evento nell'originale.
 

Fulvio75

Well-Known Member
Licensed User
A me risulta che quella riga venga eseguita nella routine-evento nell'originale.
Si vero, provo a eseguirla forzatamente su create e senza evento, tanto apro l'applicazione e la chiudo senza altre activity
 

Fulvio75

Well-Known Member
Licensed User
Non c'è bisogno di lasciar perdere, prova così:
1. usa la library AppCompat
2. inserisci queste righe nel Manifest( i colori li puoi cambiare a piacere tuo)

B4X:
'************ Android-Themen ************
SetApplicationAttribute(android:theme, "@style/MyAppTheme")
CreateResource(values, theme.xml,
<resources>
    <style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#607D8B</item>
        <item name="colorPrimaryDark">#455A64</item>
        <item name="colorAccent">#607D8B</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:navigationBarColor">#000000</item>
    </style>

<style name="ToolbarMenu" parent="Base.ThemeOverlay.AppCompat.ActionBar">
    <item name="android:textColorPrimary">#fff</item>
    <item name="android:colorBackground">#0098FF</item>
   </style>
</resources>
)
'End of Android-Themen

Nella Activity inserisci queste 4 righe:
B4X:
#Region  Activity Attributes
    #FullScreen: true
    #IncludeTitle: false
#End Region

Quello che non sopporto è che a ogni problema con le Activity, si consiglia sempre di usare le B4xPage!
A me queste B4xPage mi sono diventate quasi antipatiche, per questo non le uso.
provato cambia solo il colore alla mavigationbar ma non la nasconde
 

Filippo

Expert
Licensed User
Longtime User
visto che poi devi sperare che vengano mantenute aggiornate.
questo è uno dei motivi per il quale uso solo le librerie di Erel e le mie. ;)

per il semplice fatto che i vantaggi sono tanti, lo svantaggio uno solo: il singolo orientamento dell'app.
e questo motivo mi basta per non usarle per le mie Apps.

E poi perchè non usare le activity? Se non sbaglio sono le cose assenziali del sistema Android.
 

Filippo

Expert
Licensed User
Longtime User
provato cambia solo il colore alla mavigationbar ma non la nasconde
perchè devi nasconderla? Basta gestire il tasto Back in "Activity_KeyPress".
B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'return true if you want to consume the event
    If KeyCode = KeyCodes.KEYCODE_BACK Then
      Return True
    End If
    Return False
End Sub
 

Fulvio75

Well-Known Member
Licensed User
perchè devi nasconderla? Basta gestire il tasto Back in "Activity_KeyPress".
B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'return true if you want to consume the event
    If KeyCode = KeyCodes.KEYCODE_BACK Then
      Return True
    End If
    Return False
End Sub
Poi quando trovo il modo posto il video di quello che ho fatto, devo nasconderla 😆😆
 

Fulvio75

Well-Known Member
Licensed User
@Fulvio75
Hai provato il mio esempio con il controllo se l'app è in debug?
Perché dove lo esegui tu è sbagliato.
La sub che ti crea problemi viene richiamata dal codice per l' Immersive che è in Activity_Create.
Se risolvi con il codice di @Filippo meglio ancora, soluzione che studierò anche io. :)
provato... sul telefono funziona però l'app dove l'ho provata (che non è quella di destinazione) ha tante activity e ovviamente funziona solo sull'activity dove c'è il codice.
Domani provo sull'altra app che ha solo una activity e non è un telefono poi ti dico se va ma dovrebbe funzionare, approposito la navigationbar non è come quella del telefono devo capire che roba è ma dovrebbe funzionare, praticamente su questa barra compaiono le applicazioni aperte in precedenza sai come si chiama?
 
Top