9

Ich habe eine einfache App mit 2 Aktivitäten erstellen. Main (Launcher) -Aktivität ist ordnungsgemäß thematisch, wo colorPrimaryDark auf die Statusleiste angewendet wird. Aber wenn ich zu einer neuen Aktivität übergehe, scheint alles außer Statusleiste normal. Es war irgendwie weiß gefärbt. Irgendeine Idee, warum das passieren könnte?Android: Statusleiste nicht Thema auf Übergang zu neuer Aktivität

Ausführen dieses auf OnePlus One (Lollipop 5.0.2)

Ziel api -> 16+

enter image description here

Werte/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> 

Werte-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

Vielleicht [diese] (http://stackoverflow.com/questions/28289477/transparent-status-bar-not-working-with -windowtranslucentnavigation-false) wird Ihnen helfen – Strider

Antwort

7

ändern

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

zu

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

Sollte dies nicht auch die Haupt-Launcher-Aktivität beeinflussen? PrimaryColorDark wird mit diesen Einstellungen automatisch auf die Hauptaktivität angewendet. – Andy

+0

Ich glaube, es erscheint grau, wie Sie die StatusBarColor auf transparent setzen. Versuchen Sie, diese Zeile vollständig zu entfernen. – Pyrmont

+2

Wenn ich den obigen Stil ändere oder entferne, dann verliert mein Navigationsfach in der Hauptaktivität eine Funktion, die das Nav-Fach unter der Statusleiste zeichnet.Wie in diesem [Bild] (http://3.bp.blogspot.com/-WmBBQQEJIKM/VWikAyy08sI/AAAAAAAAAvcc/1R36Txk83UI/s400/drawer.png) So behielt ich den Stil, wie es ist und setzte die Statusleiste Farbe geändert programmatisch in der betreffenden Aktivität: getWindow(). setStatusBarColor (getResources(). getColor (R.color.PrimaryDarkColor)); – Andy

1

Ändern der api Ebene 11+, Sie es finden können. Ändern Sie den Theme DarkActionBar

1

Sie möglicherweise nicht diese mehr benötigen, aber ich vor kurzem dieses Problem so vielleicht wird dies anderen helfen.

ich das Problem beheben, indem neue Stil in Werte-v21 Erstellung/styles.xml vom AppTheme erstreckt:

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

und verwenden diese als neue Aktivität Thema in manifestieren. Auf diese Weise müssen Ihre Änderungen keine Aktivitäten beeinträchtigen, die eine transparente Statusleiste wie Ihre Hauptaktivität benötigen.

Ich habe keine Ahnung, warum das passiert ist.

0

In values-v21/styles.xml ändern

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

zu

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