Zastanawiałem się, czy można zmienić kolor ikon paska stanu ( nie kolor paska stanu colorPrimaryDark
).
Powiedzmy, że chcę ten pasek stanu z:
<item name="colorPrimaryDark">@android:color/white</item>
a ikony w kolorze czarnym, czy to możliwe?
Dzięki.
EDYTOWAĆ:
Nowość w podglądzie dewelopera M: windowLightStatusBar. Włączenie tego w twoim motywie nakazuje systemowi użycie ciemnego pierwszego planu, przydatnego w przypadku jaśniejszych kolorowych pasków stanu. Zauważ, że w podglądzie M wydaje się mieć błąd polegający na tym, że ikony powiadomień pozostają białe, podczas gdy ikony stanu systemu prawidłowo zmieniają się na półprzezroczystą czerń.
z: post Romana Nurika na Google+
<item name="android:windowLightStatusBar">true</item>
pracował dla mnie.Tak, można to zmienić na szary (brak kolorów niestandardowych), ale działa to tylko od API 23 i wyższych, wystarczy dodać to do swoich values-v23 / styles.xml
źródło
@eOnOe odpowiedział, jak możemy zmienić odcień paska stanu za pomocą XML. Ale możemy też dynamicznie zmieniać to w kodzie:
źródło
jeśli masz poziom API mniejszy niż 23, musisz go używać w ten sposób. zadziałało dla mnie, zadeklaruj to w stylu v21 / .
źródło
tools:targetApi="23"
Część opowiada Lint stłumić to ostrzeżenie.Ustawianie
windowLightStatusBar
siętrue
nie współpracuje z telefonami MI, niektóre telefony Meizu, telefony Blackview, WileyFox itd. Znalazłem taki siekać dla urządzeń Mi i Meizu. Nie jest to kompleksowe rozwiązanie tego problemu z wydajnością, ale może komuś się przyda.I myślę, że byłoby lepiej powiedzieć klientowi, że kolorowanie paska stanu (na przykład) na biało - nie jest dobrym pomysłem. zamiast używać różnych hacków, lepiej byłoby zdefiniować odpowiednie
colorPrimaryDark
zgodnie z wytycznymiźródło
Tak, możesz to zmienić. ale w api 22 i nowszych przy użyciu NotificationCompat.Builder i setColorized (true):
źródło