Как получить цвет фона уведомлений по умолчанию для пользовательского уведомления в Lollipop?
У меня возникла проблема с цветом фона моего настраиваемого уведомления в Lollipop.
Он черный, где он должен быть белым.
TextColor в порядке:
Я использую
<resources>
<style name="NotificationText" parent="android:TextAppearance.StatusBar.EventContent" />
<style name="NotificationTitle" parent="android:TextAppearance.StatusBar.EventContent.Title" />
</resources>
Любая идея, как использовать цвет темы темы по умолчанию для пользовательского уведомления?
Ответы
Ответ 1
Ваше приложение targetSdkVersion должно быть 21.
Как и Ахмед, добавьте еще один файл стилей в папку значений -21.
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="NotificationText" parent="android:TextAppearance.Material.Notification" />
<style name="NotificationTitle" parent="android:TextAppearance.Material.Notification.Title" />
<style name="NotificationTime" parent="android:TextAppearance.Material.Notification.Time" />
</resources>
Ответ 2
По какой-то причине в Lollipop появляются новые стили. Поместите это в значения-v21/styles.xml:
<resources>
<style name="NotificationTitle" parent="android:TextAppearance.Material.Notification.Title"></style>
<style name="NotificationText" parent="android:TextAppearance.Material.Notification"></style>
</resources>
Ответ 3
Создайте значения папки-v21/styles.xml и пропустите приведенный ниже код,
<style name="NotificationTitle" parent="@android:style/TextAppearance.StatusBar.EventContent.Title">
<item name="android:textColor">@android:color/black</item>
<item name="android:textStyle">normal</item></style>
Ответ 4
Чтобы решить эту проблему, у вас есть 2 варианта:
1) Target SDK 21, а пользовательское уведомление будет автоматически использовать белый фон
2) Скопируйте существующий макет в папку layout-v21 и добавьте в его корень андроид: background = "# FFFFFFFF", например:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="#FFFFFFFF" >
...
</LinearLayout>
Отлично работает для меня.
Ответ 5
Я не уверен, какова тема фона, но я просто установил фон моих пользовательских макетов (малый вид и большой вид) на темный цвет в xml. Это затем более точно соответствует уведомлениям перед Lollipop.
Мне кажется странным, что внешний вид android: TextAppearance.StatusBar.EventContent.Title не регулируется темным цветом для Lollipop, когда стандартный цвет уведомления белого!