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

7voto

Lösung ist sehr einfach, fügen Sie die folgenden Zeilen in Ihre style.xml ein:

Für den Dunkelmodus:

false
@color/black

6voto

Fügen Sie einfach diese Zeilen in Ihre styles.xml-Datei hinzu

    <!-- Dies wird für die Statusleistenfarbe verwendet. -->
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <!-- Dies wird für die Statusleisteninhaltsfarbe verwendet. Wenn statusbarColor hell ist, verwenden Sie "true", andernfalls verwenden Sie "false"-->
    <item name="android:windowLightStatusBar">false</item>

5voto

2023 - Verwendung von windowInsetController

 fun Activity.setSystemBars(
    lightStatusBarColor: Int = Color.WHITE,
    darkStatusBarColor: Int = Color.BLACK,
    lightNavigationBarColor: Int = Color.WHITE,
    darkNavigationBarColor: Int = Color.BLACK,
) {

    when (resources.configuration.uiMode.and(Configuration.UI_MODE_NIGHT_MASK)) {
        Configuration.UI_MODE_NIGHT_YES -> {
            setSystemBarAppearance(
                statusBarColor = getColorFromId(darkStatusBarColor),
                navigationBarColor = getColorFromId(darkNavigationBarColor),
                isAppearanceLightNavigationBars = false,
                isAppearanceLightStatusBars = false
            )
        }
        Configuration.UI_MODE_NIGHT_NO -> {
            setSystemBarAppearance(
                statusBarColor = getColorFromId(lightStatusBarColor),
                navigationBarColor = getColorFromId(lightNavigationBarColor),
                isAppearanceLightNavigationBars = true,
                isAppearanceLightStatusBars = true
            )
        }
        Configuration.UI_MODE_NIGHT_UNDEFINED -> {
            setSystemBarAppearance()
        }
    }
}

fun Activity.setSystemBarAppearance(
    statusBarColor: Int = Color.WHITE,
    navigationBarColor: Int = Color.WHITE,
    isAppearanceLightStatusBars: Boolean = true,
    isAppearanceLightNavigationBars: Boolean = true
) {
        window.statusBarColor = statusBarColor
        window.navigationBarColor = navigationBarColor
        val windowInsetController = WindowCompat.getInsetsController(window, window.decorView)
        windowInsetController.isAppearanceLightStatusBars = isAppearanceLightStatusBars
        windowInsetController.isAppearanceLightNavigationBars = isAppearanceLightNavigationBars
}

fun Context.getColorFromId(id: Int) = ContextCompat.getColor(this, id)

4voto

Harpreet Punkte 2826

Dies ist das, was für mich in KitKat funktioniert hat und gute Ergebnisse gebracht hat.

public static void setTaskBarColored(Activity context) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
        {
            Window w = context.getWindow();
            w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            //Statusleisten Höhe
            int statusBarHeight = Utilities.getStatusBarHeight(context);

            View view = new View(context);
            view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            view.getLayoutParams().height = statusBarHeight;
            ((ViewGroup) w.getDecorView()).addView(view);
            view.setBackgroundColor(context.getResources().getColor(R.color.colorPrimaryTaskBar));
        }
    }

4voto

Ändern Sie die colorPrimaryDark in Ihre gewünschte Farbe in der Datei res/values/styles.xml

        #800000
        #303F9F //Diese Zeile
        #FF4081
        #FF0000
        #FFFFFF
        #fffdd0
        #800000

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