2014-12-23 6 views
19

Ich möchte die Farbe der Statusleiste für meine App so ändern, dass sie weiß mit schwarzen Symbolen ist (anstelle des Standardschwarzen mit weißen Symbolen). Gibt es eine Möglichkeit, dies zu tun?Wie kann ich die Statusleiste weiß mit schwarzen Symbolen machen?

+0

Ändern Sie Ihr Standardthema – Rohit5k2

+0

Welches Thema sollte ich ändern, um die Symbole der Benachrichtigungsleiste auf Schwarz zu setzen? – Jon

+0

Verwenden Sie ein benutzerdefiniertes Design. Um zu beginnen mit http://stackoverflow.com/questions/8024706/how-do-i-change-the-background-color-of-the-actionbar-of-actionbaractivity-us – Rohit5k2

Antwort

40

Mit Android M (api Level 23) Sie dies von Thema mit android:windowLightStatusBar Attribut erreichen können.

Edit:

Wie Pdroid erwähnt, gilt dies auch programmatisch erreicht werden kann:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); 
+2

kann ich es programmgesteuert einstellen? – busylee

+0

@busylee Ich denke, Sie können ein Kind Ihres Themas erstellen und ändern Sie es dort und bewerben Sie sich mit activity.getTheme.setTo (Thema andere) – wrecker

+0

Hallo @Wrecker Ich habe dasselbe Problem mit meiner Anwendung Benachrichtigungssymbol. Ich habe android hinzugefügt: windowLightStatusBar = true in meinem Thema und ich teste es in Android M. aber das weiße Benachrichtigungssymbol nicht zu grau ändern, wenn ich das Thema mit einer Drittanbieter-Launcher-Anwendung (Nova Launcher) ändern. Ich habe alle möglichen Wege ausprobiert, konnte es aber noch nicht beheben. Wenn Sie mir helfen können, wird es dankbar sein. – Sujit

1

Kein solcher Weg, es sei denn, Sie haben eine Kontrolle über das gesamte ROM, um das manuell anzupassen. Was ich Ihnen vorschlagen, ist, verwenden Sie eine hellgraue Farbe für die Farbe der Statusleiste durch Ihr Thema wie das Google Drive tut.

Edit: entnehmen Sie bitte @Wrekcker Antwort wie dies in android M.

geändert
-2

Ich hatte das gleiche Problem.

Ich bemerkte, dass wenn ich normales Layout wie RelativeLayout verwende, es nicht funktioniert. Aber als ich von der Support-Bibliothek CordinatorLayout hierher wechselte, hat es endlich angefangen zu arbeiten. Versuche dies.

<?xml version="1.0" encoding="utf-8"?> 
    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     tools:context=".Activities.Activity"> 


     <android.support.v7.widget.Toolbar 
      android:id="@+id/tb_activity" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 


    </android.support.design.widget.CoordinatorLayout> 

< ********* UNTER ANDEREN ATTRIBUTES ************>

Arten

<resources> 
<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="AppTheme.NoActionBar" parent="AppTheme"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

Und im Manifest

<activity 
      android:name=".Activities.MyActivity" 
      android:label="Activity" 
      android:theme="@style/AppTheme.NoActionBar"> 
     </activity> 
4

Es ist möglich, mache die weiße Statusleiste mit grauen Icons, z.B. auf diese Weise für SDK> = 23:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:windowLightStatusBar">true</item> 
</style> 

in Ihrem styles.xml und die colorPrimary auf weiß gesetzt oder programmatisch:

getWindow().setStatusBarColor(Color.WHITE); 
+0

echte Arbeit. Danke – Sergey

0

Nur um meine Tätigkeit auf Kotlin hinzugefügt:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
       window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 
       window.statusBarColor = Color.WHITE 
      } 
Verwandte Themen