2015-03-19 14 views
6

Mi piacerebbe impostare windowTranslucentStatus su true quando l'utente è su lollipop e sopra perché altrimenti (almeno su kitkat) la barra delle applicazioni appare all'interno della barra di sistema. Il lecca-lecca va bene. Senza rendere separato styles.xml per ogni versione che apparentemente non dovresti più fare come posso impostarlo in java?Imposta finestraTranslucentStatus = true quando il lollipop è Android o superiore

Ho il seguente codice nel mio mainActivity ma non conosco hot windowTranslucentStatus ... Qualche idea?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    // set windowTranslucentStatus = true 
} 

risposta

19
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     Window w = getWindow(); // in Activity's onCreate() for instance 
     w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 
     w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    } 
+0

ho usato che nella parte superiore del mio metodo onCreate e anche provato dopo setContentView, ma non lo fa sembra fare alcuna differenza. La stampa del sistema conferma che il codice è in esecuzione ma sembra uguale con o senza il codice. – raptor

+0

Ho modificato la mia risposta, ho controllato il suo funzionamento ora, per favore controlla. – Satty

+0

Cheers funziona perfettamente grazie! – raptor

0

È possibile passare da trasparente o no ogni volta che si desidera utilizzare questo:

public static void setTranslucent(Activity activity, boolean translucent){ 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    Window w = activity.getWindow(); 
    if(translucent) { 
    w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    } 
    else{ 
    w.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    } 
} 
Problemi correlati