В одном из моих занятий я изменил цвет панели инструментов с помощью Palette
. Но на 5.0 устройств , использующих ActionBarActivity
в status bar
цвет является цвет моей colorPrimaryDark
в моей теме деятельности , так у меня есть 2 очень разные цвета , и это не выглядит хорошо.
Я понимаю, что в 5.0 вы можете использовать, Window.setStatusBarColor()
но ActionBarActivity
не имеет этого.
так что мой вопрос в 5.0, как я могу изменить цвет строки состояния с ActionBarActivity
?
Ответы:
Я не уверен, что понимаю проблему.
Если вы хотите изменить цвет строки состояния программно (и при условии, что устройство имеет Android 5.0), то вы можете использовать
Window.setStatusBarColor()
. Не должно иметь значения, является ли действие производным отActivity
илиActionBarActivity
.Просто попробуйте сделать:
Только что проверил это,
ActionBarActivity
и все работает хорошо.Примечание: установка
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
флага программно не требуется, еслиvalues-v21
он уже установлен в вашем файле стилей, через:источник
getWindow()
minSdkVersion
и / илиtargetSdkVersion
атрибуты на<uses-sdk ...>
элементе).Существуют различные способы изменения цвета строки состояния.
1) Использование styles.xml. Вы можете использовать атрибут android: statusBarColor, чтобы сделать это простым, но статичным способом.
Примечание. Этот атрибут также можно использовать с темой «Материал».
2) Вы можете сделать это динамически, используя метод setStatusBarColor (int) в классе Window. Но помните, что этот метод доступен только для API 21 или выше. Так что не забудьте проверить это, иначе ваше приложение непременно рухнет на нижних устройствах.
Вот рабочий пример этого метода.
где primaryDark - это 700 оттенков основного цвета, которые я использую в своем приложении. Вы можете определить этот цвет в файле colors.xml.
Попробуйте и дайте мне знать, если у вас есть какие-либо вопросы. Надеюсь, поможет.
источник
clearFlags
исправить мою проблемуЯ не думаю, что цвет строки состояния был реализован в AppCompat еще. Это доступные атрибуты:
(Из \ sdk \ extras \ android \ support \ v7 \ appcompat \ res \ values \ attrs.xml )
источник
Попробуйте, я использовал это, и он очень хорошо работает с v21.
источник
Спасибо за ответы выше, с помощью тех, после определенных R & D для приложения xamarin.android MVVMCross, ниже работал
Флаг, указанный для активности в методе OnCreate
Тема для каждой MvxActivity упомянута ниже
Мой SplashStyle.xml выглядит так, как показано ниже
И у меня V7 appcompact указано.
источник
[Версия Kotlin] Я создал это расширение, которое также проверяет, достаточно ли контрастирует нужный цвет, чтобы скрыть системный интерфейс, например, значок состояния батареи, часы и т. Д., Поэтому мы устанавливаем системный интерфейс белым или черным в соответствии с этим.
источник
применение
у
Theme.AppCompat.Light.DarkActionBar
меня не сработало. Что сделал трюк, выдаваяcolorPrimaryDark
как обычно вместе сandroid:colorPrimary
styles.xmlи в настройке
не нужно было устанавливать цвет строки состояния в коде.
источник