2015-10-26 33 views
6

Sto cercando di rendere trasparente la barra di stato nella mia applicazione utilizzando questo codice:Stato trasparenza bar non funziona

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
getWindow().setStatusBarColor(Color.TRANSPARENT); 

Ma non funziona. La barra di stato cambia colore e diventa grigia, non trasparente. Dov'è il mio errore? Come rendere la barra di stato trasparente?

+0

È possibile controllare forse una delle mie risposte precedenti: http://stackoverflow.com/a/33986302/3426717 – Andrei

risposta

4

Prova questo nel vostro aggiornamento styles.xml(v21)

<name="android:windowDrawsSystemBarBackgrounds">true</item> 
<item name="android:windowTranslucentStatus">true</item> 

È possibile ottenere lo stesso effetto programatically su KitKat e poi impostando questo flag Finestra

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
      Window w = getWindow(); // in Activity's onCreate() for instance 
      w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 
     } 

Se si imposta un risorsa di sfondo (come un colore o un'immagine) per il layout, vedrai il colore o l'immagine "bel" ow "la barra di stato.

<item name="android:windowDrawsSystemBarBackgrounds">true</item> 
<item name="android:statusBarColor">@color/primary_dark</item> 

Source

+1

No, non funziona – BArtWell

+0

Test sui dispositivi +19? Qual è il risultato finale utilizzando questa soluzione? –

+0

Sì, Nexus 5 con Android 5.1.1. La barra di stato è diventata grigia, ma non trasparente. – BArtWell

1

provate a chiamare questo da onCreate:

getWindow().getDecorView().setSystemUiVisibility(
    View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 

getWindow().setStatusBarColor(Color.TRANSPARENT); 
+0

Stesso risultato: la barra di stato è diventata grigia, ma non trasparente. – BArtWell