2015-02-04 8 views
5

Sto cercando di creare questa interfaccia:ActionBar trasparente e barra di stato in Android Lollipop

enter image description here

Ed ecco il mio risultato effettivo:

enter image description here

  • La barra di stato è ben trasparente e vediamo la mia immagine come sfondo: OK
  • La barra delle azioni non è tr ansparent: NOK

Ecco il codice del mio tema che uso per questa attività:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <!-- inherit from the material theme --> 
    <style name="MaterialAppDetailTheme" parent="android:Theme.Material.Light"> 

     <item name="android:statusBarColor">@android:color/transparent</item> 
     <item name="android:windowActionBarOverlay">true</item> 

     <!-- enable window content transitions --> 
     <item name="android:windowContentTransitions">true</item> 

     <!-- specify shared element transitions --> 
     <item name="android:windowSharedElementEnterTransition"> 
      @transition/change_image_transform</item> 
     <item name="android:windowSharedElementExitTransition"> 
      @transition/change_image_transform</item> 

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

    </style> 
</resources> 
+0

Si sta utilizzando ActionBar o barra degli strumenti? –

+0

@PedroOliveira actionBar – wawanopoulos

risposta

4

È possibile modificare il colore della barra degli strumenti di trasparenza in questo modo:

mToolbar.setBackgroundColor(getResources().getColor(android.R.color.transparent)); 

Puoi modifica lo sfondo anche su XML:

android:background="@android:color/transparent" 

oppure se si sta utilizzando ActionBar:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 

Usa getActionBar() se non si sta usando ActionBarActivity

Risultato:

enter image description here

+0

Sì, funziona. Controlla lo schermo –

+0

Ha bisogno di aggiungere 'marginTop' alla dimensione della barra di stato, se usa' fitSystemWindow' in tema/layout xml. Altrimenti, la barra di stato in basso sarà sull'icona di navigazione, che non ha un bell'aspetto. –

+0

Suppongo che sia riuscito a spiegarlo perché l'unico problema che ha descritto era il fatto che la sua barra di azione non era trasparente. Lo schermo corrente era solo qualcosa che ho creato solo per mostrare l'effetto. –

1

usare questo stile:

<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="android:textColorPrimary">@color/my_text_color</item> 
    <item name="colorPrimary">@android:color/transparent</item> 
    <item name="windowActionBarOverlay">true</item> 
</style> 
0

Per API che> = 21, aggiungi al tema queste righe del codice

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

Non dimenticare di aggiungere

android:fitsSystemWindows="true"