2013-04-30 5 views
21

enter image description hereCome nascondere la barra dei tasti di scelta rapida sul telefono Android?

All'avvio della mia app, vorrei nascondere la barra dei tasti funzione (nel rettangolo rosso) per avere uno schermo più grande.

  1. Come posso nasconderlo?

  2. Devo mostrare la barra di proposito quando l'app si chiude? O si ripristinerà automaticamente dopo la chiusura dell'app?

Android 4.1, senza tasti hardware sul fronte del telefono.

+0

possibile duplicato del [Hide Sistema Bar in compresse] (http://stackoverflow.com/questions/12605266/hide-system-bar-in-tablets) – jprofitt

+0

Anche possibilmente utile: [Un modo semplice per nascondere la barra di sistema su Android ICS] (http://stackoverflow.com/questions/10445157/easy-way-to- hide-system-bar-on-android-ics) – jprofitt

risposta

19

Prova

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

da Official doc

La bandiera SYSTEM_UI_FLAG_LOW_PROFILE sostituisce la bandiera STATUS_BAR_HIDDEN . Se impostato, questo flag abilita la modalità "low profile" per la barra di sistema o barra di navigazione.Tasti di navigazione dim e altri elementi in la barra di sistema si nasconde. Abilitare questa funzione è utile per creare più giochi immersivi senza distrazioni per la navigazione del sistema pulsanti.

la bandiera SYSTEM_UI_FLAG_VISIBLE sostituisce la bandiera STATUS_BAR_VISIBLE richiedere la barra di sistema o di navigazione barra di essere visibile.

lo SYSTEM_UI_FLAG_HIDE_NAVIGATION è una nuova bandiera che richiede completamente l' navigazione barra di nascondere. essere consapevoli del fatto che questo funziona solo per la barra di navigazione utilizzata da alcuni han dsets (non nasconde la barra del sistema su tablet). La barra di navigazione torna a visualizzare non appena il sistema riceve l'input dell'utente. In quanto tale, questa modalità è utile principalmente per la riproduzione di video o altri casi in cui è necessario l'intero schermo ma l'input dell'utente non è richiesto.

Il comportamento della barra di navigazione è IIRC dipendente dall'app, quindi dovrebbe essere visualizzato nuovamente dopo che l'utente ha lasciato l'app.

+1

Grazie! Il codice precedente nasconde la barra come previsto. Tuttavia, quando tocco lo schermo dell'app attiva, la barra riappare. Come posso rendere la barra nascosta per il resto del ciclo di vita dell'app? – ohho

+0

Ogni volta che l'utente interagisce con l'app, la barra di navigazione tornerà, come hai visto. Questo è, secondo il documento ufficiale, un comportamento intenzionale.Penso che dovrai nascondere la barra ogni volta che ti aspetti un'interazione, sfortunatamente. https://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_HIDE_NAVIGATION – MarsAtomic

+2

@MarsAtomic Dal livello di API 19 c'è SYSTEM_UI_FLAG_IMMERSIVE e SYSTEM_UI_FLAG_IMMERSIVE_STICKY – user457015

27

So che è tardi ma è la risposta giusta, quindi quello che stai cercando di fare è quello che si chiama modalità immersiva. per (API 19)

check-out: https://developer.android.com/training/system-ui/immersive.html

Il codice che si stavano chiedendo è:

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     getWindow().getDecorView().setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
         | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
         | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
         | View.SYSTEM_UI_FLAG_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
    } 
} 
+0

Grazie, ma sto affrontando problema quando apro la tastiera, i layout in basso vengono tagliati. –

+0

@PraveenPandey dovresti aggiungere il tag falso di clippadding. – mhdjazmati

+2

Finalmente è lavoro. Il codice è tutto, ma il punto è in esso suWindowFocusChanged. Grazie! – Mete