2015-11-12 14 views
8

Ho aggiunto colorPrimaryDark su style.xml ma nessun colore è stato interessato dalla barra di stato di Android v21.(colorPrimaryDark) Il colore della barra di stato non funziona su Android v21?

ho una barra degli strumenti personalizzata in cui io uso senza barra azioni tema nel codice style.xml

se qualsiasi soluzione please help me?

codice di stile: -

<style name="AppTheme" parent="AppTheme.Base"> 
    <!-- Customize your theme here. --> 
</style> 

<style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="myCustomToolbarTheme" parent="ThemeOverlay.AppCompat.Light"> 
    <item name="android:textColorSecondary">@color/colorAccent</item> 
</style> 

stile V21: -

<style name="AppTheme" parent="AppTheme.Base"> 
    <item name="android:colorPrimary">@color/colorPrimary</item> 
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:colorAccent">@color/colorAccent</item> 

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

Codice Barra degli strumenti: -

<android.support.v7.widget.Toolbar 
android:id="@+id/toolbar" 
android:layout_width="match_parent" 
android:layout_height="56dp" 
android:elevation="4dp" 
android:background="@color/colorPrimary" 
android:popupTheme="@style/Base.ThemeOverlay.AppCompat.Light" 
xmlns:android="http://schemas.android.com/apk/res/android" /> 

principale codice layout

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity"> 

<LinearLayout 
    android:fitsSystemWindows="true" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:orientation="vertical"> 

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

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/button1" /> 

</LinearLayout> 


<android.support.design.widget.FloatingActionButton 
    xmlns:fab="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/fab" 
    android:layout_gravity="right|bottom" 
    android:src="@mipmap/ic_plus" 
    android:onClick="fabClick" 
    android:layout_marginRight="@dimen/fab_margin" 
    android:layout_marginBottom="@dimen/fab_margin_bottom" 
    fab:borderWidth="0dp"/> 

risposta

11

Credo che il tuo CoordinatorLayout manca il seguente attributo: Android: fitsSystemWindows = "true"

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" 
    android:fitsSystemWindows="true"> 
+0

grazie a Dio. Hai appena salvato la mia giornata. * pugno urto * – kopikaokao

+0

Penso di aver rimosso per errore questa proprietà mentre facevo alcune modifiche al layout. Sono andato alla ricerca delle ultime ore per questa soluzione. – midhunhk

5

Molto tempo fa, ma ora ti risponderò in ogni caso, è necessario rimuovere questa riga :

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

e 'ignorando il colore colorPrimaryDark e fondamentalmente la rimozione dalla barra di stato.

+0

Non è prioritario. Se aggiungi android: statusBarColor, non sovrascriverà colorPrimaryDark. – KishanSolanki124

-1

uso prova

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    getWindow().setStatusBarColor(getResources().getColor(R.color.colorPrimaryDark)); 
} 
-1

Creare un nuovo file styles.xml nei valori-V21 e aggiungere seguente proprietà in AppTheme.

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

Sto avendo seguito AppTheme a styles.xml (V21)

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:statusBarColor">@color/colorPrimaryDark</item> 
</style> 
+0

Sebbene questa soluzione funzioni, sostituisce un colore della barra di stato. Quindi, se hai un cassetto di navigazione o CollapsingToolbarLayout, avrai una barra in tinta unita anziché un'immagine dietro la barra di stato. – CoolMind

Problemi correlati