Jak zmienić kolor paska stanu w Androidzie?


427

Przede wszystkim nie jest to duplikat jak w Jak zmienić kolor tła paska stanu Androida

Jak zmienić kolor paska stanu, który powinien być taki sam jak na pasku nawigacyjnym.

Chcę, aby kolor paska stanu był taki sam jak kolor paska nawigacji

wprowadź opis zdjęcia tutaj


2
jest to możliwe dopiero po KitKat @MarkBuikema
codercat

4
Jak sugeruje Niels, istnieje atrybut TEMATU od czasu wywołania v21 android:statusBarColor. Możesz to po prostu dodać values-v21/styles.xml.
Levite

@MarkBuikema Jak to w ogóle związane z dostępem do roota!
steve moretz

Odpowiedzi:


624

Android 5.0 Lollipop wprowadził motyw Material Design, który automatycznie zmienia kolor paska stanu na podstawie colorPrimaryDark wartości motywu.

Jest to obsługiwane na urządzeniach przed wersją Lollipop dzięki bibliotece support-v7-appcompat od wersji 21. Blogpost na temat wsparcia appcompat v21 od Chrisa Banesa

wprowadź opis zdjęcia tutaj

Przeczytaj więcej na temat motywu materiałowego na oficjalnej stronie programistów Androida


29
z jakiegoś powodu atrybut colorPrimaryDark nie działa dla mnie. Próbowałem na emulatora V21
dewiacyjnych

3
Działa, musisz zobaczyć zmiany w emulatorze, a nie w podglądzie układu [tam go nie pokazuje]
Mightian,

6
colorPrimaryDark nie działa dla mnie na emulatorze API 18. Z artykułu na temat appcompat: „Na starszych platformach AppCompat emuluje motywy kolorystyczne tam, gdzie to możliwe. Obecnie ogranicza się to do kolorowania paska akcji i niektórych widżetów”.
Adam Johns

12
Co powiesz na zmianę koloru czcionki na pasku stanu? Dokumenty nic o tym nie mówią.
Scott Biggs,

Próbowałem w ten sam sposób. działa idealnie na większości wszystkich urządzeń, ale mam Samsung Galaxy S4 z systemem OS 5.0.1 i na tym pasku stanu telefonu jest czarny. A kiedy przejdę do innej aktywności i powrócę do poprzedniej aktywności, kolor paska stanu zmieni się na kolor motywu aplikacji. Jakikolwiek powód, dla którego tak się dzieje
Hitesh Kamani,

364

Aktualizacja:

Lizak:

public abstract void setStatusBarColor (int color)

Dodano w API 21 poziom

Android Lollipop przyniósł ze sobą możliwość zmiany koloru paska stanu w aplikacji, aby uzyskać bardziej wciągające wrażenia użytkownika i dostosować się do Google Material Design Guidelines.

Oto jak możesz zmienić kolor paska stanu za pomocą nowej window.setStatusBarColormetody wprowadzonej w API level 21.

Zmiana koloru paska stanu wymaga również ustawienia dwóch dodatkowych flag w oknie; musisz dodać FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDSflagę i wyczyścićFLAG_TRANSLUCENT_STATUS flagę.

Kod roboczy:

import android.view.Window;

...

Window window = activity.getWindow();

// clear FLAG_TRANSLUCENT_STATUS flag:
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

// finally change the color
window.setStatusBarColor(ContextCompat.getColor(activity,R.color.my_statusbar_color));

Referencje dla programistów oficjalnych: oficjalnych setStatusBarColor (int)

Przykład: projektowanie materiałów wszędzie

Chris Banes Blog - appcompat v21: materiał projektowy dla urządzeń sprzed wersji Lollipop!

wprowadź opis zdjęcia tutaj

transitionNameNa tle widok będzie android:status:background.


2
Jakieś rozwiązanie dla kompatybilności wstecznej?
Adam Hurwitz

Jak zauważono w odpowiedzi Nielsa: możesz również skonfigurować kolor paska stanu za pomocą motywu / stylu, ustawiając android:statusBarColorw swoim values-v21/styles.xmlpliku na androiddocs.com/training/material/theme.html w podobny sposób<item name="android:statusBarColor">@color/primary_color</item>
JL West

4
mogę zmienić kolor paska stanu na biały, ale nie widzę ikony powiadomienia, np. baterii, jak mogę to rozwiązać?
MNFS

1
nie masz pojęcia, jak bardzo mi pomogłeś ..
Abhishek Dhyani

222

Umieść to swoje wartości-v21 / styles.xml, aby włączyć to w Lollipop:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="colorPrimary">@color/color_primary</item>
        <item name="colorPrimaryDark">@color/color_secondary</item>
        <item name="colorAccent">@color/color_accent</item>
        <item name="android:statusBarColor">@color/color_primary</item>
    </style>
</resources>

34
wymaga to min. API 21
Rzym.

49
Prawdopodobnie dlatego zasugerował, aby umieścić go w wartości-v21 / styles.xml ;-) Wydaje się, że jest to jak dotąd najdokładniejsza odpowiedź !!
Levite,

Ale to wciąż oznacza ostrzeżenie !!?
Nihal Sharma

Jaka jest funkcja Compa? pasek stanu
blackHawk

możesz dodać targeApiatrybut, jeśli chcesz zachować pojedynczy plik stylu. Przeczytaj moją odpowiedź w celach informacyjnych stackoverflow.com/a/48565459/4291272
Faisal Shaikh

50

jest to bardzo łatwy sposób na zrobienie tego bez żadnej biblioteki: jeśli wersja systemu operacyjnego nie jest obsługiwana - w KitKat - nic się nie dzieje. robię te kroki:

  1. w moim xml dodałem do góry ten widok:
<View
        android:id="@+id/statusBarBackground"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

potem zrobiłem tę metodę:

 public void setStatusBarColor(View statusBar,int color){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
           Window w = getWindow();
           w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
           //status bar height
           int actionBarHeight = getActionBarHeight();
           int statusBarHeight = getStatusBarHeight();
           //action bar height
           statusBar.getLayoutParams().height = actionBarHeight + statusBarHeight;
           statusBar.setBackgroundColor(color);
     }
}

potrzebujesz również tych dwóch metod, aby uzyskać działanie Pasek i wysokość paska stanu:

public int getActionBarHeight() {
    int actionBarHeight = 0;
    TypedValue tv = new TypedValue();
    if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
    {
       actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
    }
    return actionBarHeight;
}

public int getStatusBarHeight() {
    int result = 0;
    int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
    if (resourceId > 0) {
        result = getResources().getDimensionPixelSize(resourceId);
    }
    return result;
}

jedyną rzeczą, której potrzebujesz, jest ta linia, aby ustawić kolor paska stanu:

setStatusBarColor(findViewById(R.id.statusBarBackground),getResources().getColor(android.R.color.white));

1
gdzie powinienem umieścić element widoku? powinien znajdować się na głównym układzie?
Emil Reña Enriquez

Tak. W twoim xml. Na samym początku.
itzhar

Uwaga: Działa tylko dla Androida> = 19 API. W moim przypadku potrzebuję wsparcia od 16
Anton Kizema

setStatusBarColor (findViewById (android.R.id.statusBarBackground), getResources (). getColor (android.R.color.white));
AndroidLad

34

Jak powiedział @Niels, musisz umieścić w wartości-v21 / styles.xml:

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

Ale dodaj, tools:targetApi="lollipop"jeśli chcesz single styles.xml, na przykład:

<item name="android:statusBarColor" tools:targetApi="lollipop">@color/black</item>

3
Dziękujemy za „targetApi”. Nie lubię, gdy mój motyw jest rozłożony na wiele plików. :)
splot

31

Cóż, rozwiązanie Izhar było w porządku, ale osobiście staram się unikać kodu, który wygląda następująco:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//Do what you need for this SDK
};

Nie lubię też powielać kodu. W twojej odpowiedzi muszę dodać taki wiersz kodu we wszystkich działaniach:

setStatusBarColor(findViewById(R.id.statusBarBackground),getResources().getColor(android.R.color.white));

Więc wziąłem rozwiązanie Izhar i użyłem XML, aby uzyskać ten sam wynik: Utwórz układ dla StatusBar status_bar.xml

<View xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="@dimen/statusBarHeight"
     android:background="@color/primaryColorDark"
     android:elevation="@dimen/statusBarElevation">

Zwróć uwagę na atrybuty wysokości i wysokości, zostaną one ustawione w wartościach, wartości -19, wartości-21 poniżej.

Dodaj ten układ do układu działań za pomocą include, main_activity.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Black" >

<include layout="@layout/status_bar"/>
<include android:id="@+id/app_bar" layout="@layout/app_bar"/>
//The rest of your layout       
</RelativeLayout>

Dla paska narzędzi dodaj atrybut górnego marginesu:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@color/primaryColor"
app:theme="@style/MyCustomToolBarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
android:elevation="@dimen/toolbarElevation"
android:layout_marginTop="@dimen/appBarTopMargin"
android:textDirection="ltr"
android:layoutDirection="ltr">

W swoim appTheme style-v19.xml i styles-v21.xml dodaj windowTranslucent attr:

styles-v19.xml, v21:

<resources>
<item name="android:windowTranslucentStatus">true</item>
</resources>

I na koniec na dimens, dimens-v19, dimens-v21, dodaj wartości dla paska narzędzi topMargin i wysokości statusBarHeight: dimens.xml dla mniej niż KitKat:

<resources>
<dimen name="toolbarElevation">4dp</dimen>
<dimen name="appBarTopMargin">0dp</dimen>
<dimen name="statusBarHeight">0dp</dimen>
</resources>

Wysokość paska stanu wynosi zawsze 24dp dimens-v19.xml dla KitKat i wyższych:

<resources>
<dimen name="statusBarHeight">24dp</dimen>
<dimen name="appBarTopMargin">24dp</dimen>
</resources>

dimens-v21.xml dla Lolipop, w razie potrzeby po prostu dodaj rzędną:

<resources>
<dimen name="statusBarElevation">4dp</dimen>
</resources>

Oto wynik dla Jellybean KitKat i Lollipop:

wprowadź opis zdjęcia tutaj


Zamiast wstawiać kod sprawdzający, umieściłeś go w XML. Twoje rozwiązanie będzie działać na Kitkacie, tak jak on.
deweloper Androida

26

Możesz użyć tego prostego kodu:

One-liner w Kotlin:

window.statusBarColor = ContextCompat.getColor(this, R.color.colorName)

Oryginalna odpowiedź przy sprawdzaniu wersji Java i ręcznej:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    getWindow().setStatusBarColor(getResources().getColor(R.color.colorAccentDark_light, this.getTheme()));
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().setStatusBarColor(getResources().getColor(R.color.colorAccentDark_light));
}

Możesz to dodatkowo uprościć, używając ContextCompat. W Kotlinie jest to po prostu:window.statusBarColor = ContextCompat.getColor(this, R.color.colorName)
sunadorer

Do czasu, kiedy to napisałem, nie próbowałem kotlin. Dlaczego nie edytujesz odpowiedzi i mogę ją zatwierdzić :)
Steve Moretz

Dobry pomysł.
Zawarłem tę

kolor paska stanu zmienił się powyżej Build.VERSION_CODES.M. nie działa poniżej Lollipopa
Muhammed Haris

@MuhammedHaris to działa. Czy używałeś kodu kotlin lub java?
steve moretz

23

Po prostu utwórz nowy motyw w res / wartości / styles.xml, w którym zmienisz „colorPrimaryDark”, który jest kolorem paska stanu:

<style name="AppTheme.GrayStatusBar" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimaryDark">@color/colorGray</item>
</style>

I zmodyfikuj motyw aktywności w AndroidManifest.xml do tego, który chcesz, w następnym ćwiczeniu możesz zmienić kolor z powrotem na oryginalny, wybierając oryginalny motyw:

<activity
    android:name=".LoginActivity"
    android:theme="@style/AppTheme.GrayStatusBar" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Tak powinien wyglądać plik res / wartości / kolory.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#c6d6f0</color>
    <color name="colorGray">#757575</color>
</resources>

1
Myślę, że to najprostsze, ale najczystsze rozwiązanie. Nie trzeba mieć minimalnego poziomu API 21 , wystarczy proste zastąpienie. Zasługuje na więcej głosów.
tahsinRupam

To nie działało, gdy działałem na Nougat i ustawiono poziom interfejsu API na 19. Działa, jeśli ustawię Android: theme w węźle aplikacji w manifeście.
AndroidDev

18

Aby zmienić kolor powyższego Lolipopa, po prostu dodaj go do pliku styles.xml

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

ale pamiętaj , jeśli chcesz mieć jasny kolor paska stanu, dodaj również ten wiersz

<item name="android:windowLightStatusBar">true</item>

1
Dzięki, to też przydatna odpowiedź.
Andrew Grow

16

Za pomocą tej funkcji można zmienić kolor paska stanu. działa na Androidzie L oznacza API 21 i wyższy i wymaga ciągów kolorów, takich jak "#ffffff".

private void changeStatusBarColor(String color){
    if (Build.VERSION.SDK_INT >= 21) {
        Window window = getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.setStatusBarColor(Color.parseColor(color));
    }
}

15

Miałem ten wymóg: programowo zmienić kolor paska stanu, utrzymując go przezroczystym , aby umożliwić szufladzie nawigacji nałożenie się na siebie przez pasek stanu.

Nie mogę tego zrobić za pomocą interfejsu API

getWindow().setStatusBarColor(ContextCompat.getColor(activity ,R.color.my_statusbar_color)

Jeśli zaznaczysz tutaj w przepełnieniu stosu, wszyscy przed tym wierszem kodu ustaw przezroczystość paska stanu na ciągłą

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)

Jestem w stanie zarządzać kolorem i przezroczystością paska stanu w następujący sposób:

  • Android 4: niewiele możesz zrobić, ponieważ nie możesz zarządzać kolorem paska stanu z interfejsu API ... jedyne, co możesz zrobić, to ustawić pasek stanu jako półprzezroczysty i przesunąć kolorowy element interfejsu użytkownika pod stan bar. Aby to zrobić, musisz grać

    android:fitsSystemWindows="false"

    w twoim głównym układzie. Pozwala to narysować układ pod paskiem stanu. Następnie musisz zagrać z wypełnieniem u góry głównego układu.

  • Android 5 i nowszy: musisz zdefiniować styl

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

    dzięki temu szuflada nawigacji może nachodzić na pasek stanu.

    Następnie, aby zmienić kolor przy zachowaniu przezroczystości paska stanu, należy ustawić kolor paska stanu za pomocą

    drawerLayout.setStatusBarBackgroundColor(ContextCompat.getColor(activity, R.color.my_statusbar_color))

    gdzie drawerLayout jest zdefiniowany w ten sposób

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">

Bez mnie to działało <item name="android:windowDrawsSystemBarBackgrounds">true</item>. W każdym razie po wielu dniach poszukiwań znalazłem coś, co naprawdę działa (na razie testowane tylko na Lolllipop). Dzięki
DenisGL

miałem ten sam problem, a twoja odpowiedź pomogła mi rozwiązać ten problem.
A.Gun,

7

Zmodyfikuj colorPrimary w pliku colors.xml w polu Wartości na kolor, który ma być na pasku stanu. Na przykład:

   <resources>
<color name="colorPrimary">#800000</color> // changes the status bar color to Burgundy
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="red">#FF0000</color>
<color name="white">#FFFFFF</color>
<color name="cream">#fffdd0</color>
<color name="burgundy">#800000</color>


7

Aby zmienić kolor paska stanu, przejdź do res/values-v21/styles.xmli kolor paska stanu

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="colorPrimary">@color/color_primary</item>
        <item name="colorPrimaryDark">@color/color_secondary</item>
        <item name="colorAccent">@color/color_accent</item>
        <item name="android:statusBarColor">#0000FF</item>
    </style>
</resources>

Hej, możesz mi pomóc? Nie mam pojęcia o Androidzie i nie mogę teraz zacząć się uczyć. Mam prostą aplikację, która uruchamia plik HTML. Umieram, by zmienić kolor paska stanu, ponieważ ta górna i dolna część # 000 jest dla mojej palety okropna. Ale po prostu nie mogę, nie mogę nawet znaleźć pliku styles.xml ... Gdybym mógł wysłać ci mój apk, a ty mi go ustawisz, będę bardzo wdzięczny!
Thiago Soubra

6

Jeśli chcesz programowo zmienić kolor paska stanu (i pod warunkiem, że urządzenie ma system Android 5.0). Jest to prosty sposób na zmianę statusuBarColor z dowolnej Aktywności i bardzo łatwe metody, gdy różne fragmenty mają inny kolor paska stanu.

 /**
 * @param colorId id of color
 * @param isStatusBarFontDark Light or Dark color
 */
fun updateStatusBarColor(@ColorRes colorId: Int, isStatusBarFontDark: Boolean = true) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        val window = window
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
        window.statusBarColor = ContextCompat.getColor(this, colorId)
        setSystemBarTheme(isStatusBarFontDark)
    }
}

/** Changes the System Bar Theme.  */
@RequiresApi(api = Build.VERSION_CODES.M)
private fun setSystemBarTheme(isStatusBarFontDark: Boolean) {
    // Fetch the current flags.
    val lFlags = window.decorView.systemUiVisibility
    // Update the SystemUiVisibility depending on whether we want a Light or Dark theme.
    window.decorView.systemUiVisibility = if (isStatusBarFontDark) lFlags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv() else lFlags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
}

5

Jeśli chcesz pracować na Androidzie 4.4 i nowszych, spróbuj tego. Odnoszę się do odpowiedzi Harpreeta i tego linku. Android i przezroczysty pasek stanu

Najpierw wywołaj metodę setStatusBarColored w metodzie onCreate działania (umieściłem ją w klasie util). Używam tutaj obrazu, możesz go zmienić, aby użyć koloru.

public static void setStatusBarColored(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);
        int statusBarHeight = 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.setBackground(context.getResources().getDrawable(R.drawable.navibg));
    }
}

public static int getStatusBarHeight(Activity context) {
    int result = 0;
    int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
    if (resourceId > 0) {
        result = context.getResources().getDimensionPixelSize(resourceId);
    }
    return result;
}

Przed: przed

Po: po

Kolor paska stanu został zmieniony, ale pasek nawigacyjny jest obcięty, dlatego musimy ustawić margines lub przesunięcie paska nawigacyjnego w metodzie onCreate.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT, (int)(this.getResources().getDimension(R.dimen.navibar_height)));
        layoutParams.setMargins(0, Utils.getStatusBarHeight(this), 0, 0);

        this.findViewById(R.id.linear_navi).setLayoutParams(layoutParams);
    }

Następnie pasek stanu będzie wyglądał tak.

pasek stanu


4

To działało dla mnie w KitKat i z dobrymi wynikami.

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);
            //status bar height
            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));
        }
    }

2

Jeszcze jedno rozwiązanie:

final View decorView = w.getDecorView();
View view = new View(BaseControllerActivity.this);
final int statusBarHeight = UiUtil.getStatusBarHeight(ContextHolder.get());
view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight));
view.setBackgroundColor(colorValue);
((ViewGroup)decorView).addView(view);

Czy to zadziała na tabletach, gdzie pasek stanu znajduje się na dole ekranu?
guy.gc

6
co tu jest „w” i „UiUtil”?
Manav Patadia

2

zmień colorPrimaryDark na pożądany kolor w pliku res / wartości / styles.xml

    <resources>
        <color name="colorPrimary">#800000</color>
        <color name="colorPrimaryDark">#303F9F</color> //This Line
        <color name="colorAccent">#FF4081</color>
        <color name="red">#FF0000</color>
        <color name="white">#FFFFFF</color>
       <color name="cream">#fffdd0</color>
       <color name="burgundy">#800000</color>
    </resources>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.