Мне было интересно, можно ли изменить цвет значков строки состояния ( не цвет строки состояния colorPrimaryDark
).
Скажем, я хочу, чтобы эта строка состояния была:
<item name="colorPrimaryDark">@android:color/white</item>
а иконки черные, это возможно?
Спасибо.
РЕДАКТИРОВАТЬ:
Новое в предварительной версии M для разработчиков: windowLightStatusBar. Если включить эту опцию в вашей теме, система будет использовать темный передний план, что полезно для более светлых строк состояния. Обратите внимание, что в предварительном просмотре M, похоже, есть ошибка, когда значки уведомлений остаются белыми, а значки состояния системы правильно меняются на полупрозрачный черный.
от: Роман Нурик запись в Google+
<item name="android:windowLightStatusBar">true</item>
работал у меня.Да, можно изменить его на серый (без пользовательских цветов), но это работает только с API 23 и выше, вам нужно только добавить это в свои values-v23 / styles.xml
источник
@eOnOe ответил, как мы можем изменить оттенок строки состояния через xml. Но мы также можем изменить его динамически в коде:
источник
если у вас уровень API меньше 23, вы должны использовать его таким образом. это сработало для меня, объявить это в v21 / style .
источник
tools:targetApi="23"
Часть говорит Lint , чтобы подавить это предупреждение.Установка
windowLightStatusBar
дляtrue
не работает с телефонами Ми, некоторые телефоны Meizu, Blackview телефоны, WileyFox и т.д. Я нашел такой хак для Ми и Meizu устройств. Это не комплексное решение проблемы производительности, но, может быть, кому-то будет полезно.И я думаю, что лучше было бы сказать вашему покупателю, что окрашивать строку состояния (например) в белый цвет - не лучшая идея. вместо использования разных хаков было бы лучше определить подходящие в
colorPrimaryDark
соответствии с руководящими принципамиисточник
Да, вы можете это изменить. но в api 22 и выше, используя NotificationCompat.Builder и setColorized (true):
источник