2015-06-18 12 views
9

Ho creato una semplice app con 2 attività. L'attività principale (avvio) è a tema in cui viene applicato colorPrimaryDark alla barra di stato. Ma quando passo alla nuova attività, tutto sembra normale tranne la barra di stato. In qualche modo ha colorato il bianco. Qualche idea sul perché questo potrebbe accadere?Android: barra di stato non tema sulla transizione alla nuova attività

L'esecuzione di questo su OnePlus One (Lollipop 5.0.2)

api Target -> 16+

enter image description here

valori/styles.xml

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/PrimaryColor</item> 
    <item name="colorPrimaryDark">@color/PrimaryDarkColor</item> 
    <item name="colorAccent">@color/accent</item> 
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
</style> 

valori-v21/styles.xml

<style name="AppTheme" parent="AppTheme.Base"> 
    <item name="android:windowContentTransitions">true</item> 
    <item name="android:windowAllowEnterTransitionOverlap">true</item> 
    <item name="android:windowAllowReturnTransitionOverlap">true</item> 
    <item name="android:windowSharedElementEnterTransition">@android:transition/slide_bottom</item> 
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
</style> 

layout/activity_settings.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    xmlns:tools="http://schemas.android.com/tools" 
 
    android:id="@+id/content" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" 
 
    android:background="#856" 
 
    android:fitsSystemWindows="true" 
 
    android:orientation="vertical" 
 
    tools:context=".SettingsActivity"> 
 

 
    <include layout="@layout/toolbar" /> 
 

 
</LinearLayout>

+0

Forse [questo] (http://stackoverflow.com/questions/28289477/transparent-status-bar-not-working-with -windowtranslucentnavigation-false) ti aiuterà fuori – Strider

risposta

7

Change

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

a

<item name="android:statusBarColor">@color/PrimaryDarkColor</item> 
+0

Questo non dovrebbe influire anche sull'attività di avvio principale? PrimaryColorDark viene applicato automaticamente all'attività principale con queste impostazioni. – Andy

+0

Credo che appaia grigio mentre si imposta statusBarColor su trasparente. Prova a rimuovere completamente quella riga – Pyrmont

+2

Se cambio o rimuovo lo stile precedente, il mio cassetto di navigazione nell'attività principale perde una funzione che disegna il cassetto di navigazione nella barra di stato.Come in questa [immagine] (http://3.bp.blogspot.com/-WmBBQQEJIKM/VWikAyy08sI/AAAAAAAABB/1/1R36Txk83UI/s400/drawer.png) Quindi ho mantenuto lo stile così com'è e ho modificato il colore della barra di stato programmaticamente nell'attività interessata: getWindow(). setStatusBarColor (getResources(). getColor (R.color.PrimaryDarkColor)); – Andy

1

Modifica livello l'API per 11+, lo si può trovare. cambiare il tema per DarkActionBar

1

Non si potrebbe essere bisogno di questo più recente, ma ottengo questo problema così forse questo aiuterà gli altri.

posso risolvere il problema con la creazione di nuovo stile nel valori-V21/styles.xml che si estende dal AppTheme:

<style name="AppTheme.SolidStatusBar"> 
    <item name="android:statusBarColor">@color/PrimaryDarkColor</item> 
</style> 

e utilizzare questo come il vostro nuovo tema di attività nel manifesto. In questo modo le tue modifiche non devono interferire con le attività che necessitano di utilizzare la barra di stato traslucida come la tua attività principale.

Non ho idea del perché stia succedendo.

0

In values-v21/styles.xml, cambiare

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

a

<item name="android:statusBarColor">@color/colorPrimaryDark</item>