Intereting Posts

Строка состояния Цвет не отображается – 5.0 Lollipop Android Studio: (AppCompat-v7: r21)

Я использую библиотеку поддержки AppCompat-v7:21.0.0 для Android 5.0 Lollipop в Android Studio. Моя проблема заключается в том, что цвет colorPrimaryDark состояния, который можно изменить, установив colorPrimaryDark в values/styles.xml , отображается как черный, как в предварительном просмотре макета, так и в эмуляторе.

Так что случилось? Я что-то упускаю? Пожалуйста, дайте мне знать. Благодарю.

EDIT: Я знаю, что изменение цвета строки состояния в версиях Pre-Lollipop невозможно. Предварительный просмотр редактора макета XML и мой эмулятор установлены на уровень API 21 (5.0 Lollipop). Но в строке состояния все еще не цвет, который я установил в colorPrimaryDark . Я пробовал делать statusBarColor в styles.xml но безрезультатно. Он по-прежнему черный.

ТАКЖЕ: Я видел один из ответов по аналогичному вопросу, где они посоветовали мне поставить my minSdkVersion на 21. Я пробовал это, но это не сработало. И я хочу, чтобы мое приложение запускалось на устройствах с уровнем API 15 и выше.

Solutions Collecting From Web of "Строка состояния Цвет не отображается – 5.0 Lollipop Android Studio: (AppCompat-v7: r21)"

Прочтите следующее: для этого в окне должно быть нанесено фоновые рисунки системной панели с помощью

 android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 

но

 android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 

Не должно быть установлено ( источник )

В случае, если вы не знаете, как добавить этот флаг:

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 

Это сработало для меня:

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setStatusBarColor(getResources().getColor(R.color.some_color)); } 

Вы установили целевую версию SDK в 21? У меня была такая же проблема, когда я оставил целевую версию SDK до 19. Вы можете оставить минимальный SDK на что-нибудь ниже.

И, конечно же, вам нужно наследовать нужную тему и убедиться, что ваша деятельность использует ее.

Проверьте, редактируете ли вы styles.xml в папке values-v21 . Если вы установите версию SDK в 21, она не будет искать папку styles.xml в values (но она должна это сделать).

Введите описание изображения здесь

Тест на моем nexus7 5.1.1

Установить в style.xml v21 / v22 не работает

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

но

Установленный в действие

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setStatusBarColor(getResources().getColor(android.R.color.holo_red_dark)); } 

Это работа для меня

Изменение цвета строки состояния в пред-Lollipop (5.0) невозможно, установив colorPrimaryDark. См. Эту статью .

На старых платформах AppCompat эмулирует цветную тематику, где это возможно. На данный момент это ограничивается окраской панели действий и некоторых виджетов.

В моем случае values-v21/styles.xml содержали следующую строку, которая переопределяет цвет строки состояния, определенный в values/style.xml с colorPrimaryDark :

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

Удаление этого сработало для меня.

В моем случае виновником была jfeinstein10/SlidingMenu library. Я заменил библиотеку на Android navigation drawer и теперь он корректно отображает цвет строки состояния.

В v22-appcompat они (Android) теперь добавили рендеринг цвета строки состояния в предварительном просмотре студии Android.

О времени … В любом случае, убедитесь, что ваша библиотека appcompat обновлена ​​до последней версии, которая равна v22.0. +.

Ура!

Я работал над старым приложением и пытался преобразовать его в материальный. Код и все было в порядке, но единственная ошибка, которая была у меня была, которая мешала строке состояния, тонировавшей на> = устройства Lollipop, была «TargetSDKVersion» в build.gradle . Он был установлен менее чем за 21 год. Я изменил его на 21 и начал работать тонирование.

Это сработало для меня. Удалены цвета строки состояния из стилей. Добавьте флаг, а затем поместите нужный вам цвет

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setStatusBarColor(getResources().getColor(R.color.your_color)); }