574 Stimmen

Wie ändert man die Farbe der Statusleiste in Android?

Zunächst einmal handelt es sich nicht um ein Duplikat wie unter Wie ändere ich die Hintergrundfarbe der Android-Statusleiste

Wie kann ich die Farbe der Statusleiste ändern, die dieselbe sein sollte wie in der Navigationsleiste.

Ich möchte, dass die Farbe der Statusleiste der Farbe der Navigationsleiste entspricht

Bildbeschreibung hier eingeben

1voto

Ahmet B. Punkte 803

Wenn Sie eine benutzerdefinierte Drawable-Datei festlegen möchten, verwenden Sie diesen Code-Ausschnitt.

fun setCustomStatusBar(){
    if (Build.VERSION.SDK_INT >= 21) {
        val decor = window.decorView
        decor.viewTreeObserver.addOnPreDrawListener(object :
            ViewTreeObserver.OnPreDrawListener {
            override fun onPreDraw(): Boolean {
                decor.viewTreeObserver.removeOnPreDrawListener(this)
                val statusBar = decor.findViewById 
                  (android.R.id.statusBarBackground)
                statusBar.setBackgroundResource(R.drawable.bg_statusbar)
                return true
            }
        })
    }
}

1voto

ItSNeverLate Punkte 335
    <!-- Primäre Markenfarbe. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorPrimaryVariant">@color/colorPrimaryDark</item>
    <item name="colorOnPrimary">@color/white</item>
    <!-- Sekundäre Markenfarbe. -->
    <item name="colorOnSecondary">@color/black</item>
    <!-- Statusleistenfarbe. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Passen Sie Ihr Thema hier an. -->

Hinweis: Legen Sie colorPrimaryVariant fest

1voto

Husnain Qasim Punkte 189

Eine sehr alte Frage. Aber für jemanden, der die Farbe der Statusleiste ab ANDROID 5.0, API 21 & höher entsprechend dem Theme Dunkel und Hell sogar Gerätesteuerung ändern möchte. Platzieren Sie diesen Code in Ihrer Aktivität nach super.onCreate(savedInstanceState); und vor setContentView(R.layout.activity_main);

int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
    switch (currentNightMode) {
        case Configuration.UI_MODE_NIGHT_NO:
            // Nachtmodus ist auf dem Gerät nicht aktiv
            // Für weiße Statusleisten-Symbolfarbe auf dunkel setzen
            Window window = getWindow();
            View view = window.getDecorView();
            new WindowInsetsControllerCompat(window, view).setAppearanceLightStatusBars(true);
            break;
        case Configuration.UI_MODE_NIGHT_YES:
            // Nachtmodus ist auf dem Gerät aktiv
            break;
    }

Und auch in Ihrer style.xml fügen Sie diese Zeile ein @color/colorWhite

1voto

burak isik Punkte 169

Fügen Sie in den values/theme.xml das Element hinzu, das name="android:statusBarColor" heißt.

            ...
            ...
            ...
            <!-- Statusleistenfarbe. -->
            <item name="android:statusBarColor" tools:targetApi="l">@color/purple_700</item>

0voto

Sarvesh Hon Punkte 410

Rufen Sie die Methode aus der Aktivität auf, in der Sie die Statusleistenfarbe ändern möchten.

blackIconStatusBar(this, R.color.white);

Methode Definition

public static void blackIconStatusBar(Activity activity, int color) {

    activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
    activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
    activity.getWindow().setStatusBarColor(ContextCompat.getColor(activity, color));
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X