如何在Lollipop中获取自定义通知的默认通知背景颜色?

时间:2014-11-16 17:44:52

标签: android notifications android-5.0-lollipop

我在Lollipop中的自定义通知背景颜色有问题。 它是黑色的应该是白色的。 textColor没问题:

我正在使用

<resources>
    <style name="NotificationText" parent="android:TextAppearance.StatusBar.EventContent" />
    <style name="NotificationTitle" parent="android:TextAppearance.StatusBar.EventContent.Title" />
</resources>

知道如何使用设备默认主题颜色进行自定义通知吗?

5 个答案:

答案 0 :(得分:7)

您应用的targetSdkVersion必须为21 正如艾哈迈德的回答一样,在values-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>    

答案 1 :(得分:5)

无论出于何种原因,Lollipop都有新款式。把它放在values-v21 / styles.xml:

<resources>
    <style name="NotificationTitle" parent="android:TextAppearance.Material.Notification.Title"></style>
    <style name="NotificationText" parent="android:TextAppearance.Material.Notification"></style>
</resources>

答案 2 :(得分:0)

创建文件夹值-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>

答案 3 :(得分:0)

要解决此问题,您有两个选择:

1)目标SDK 21,自定义通知将自动使用白色背景

2)将现有布局复制到layout-v21文件夹并添加android:background =&#34; #FFFFFFF&#34;它的根源,像这样:

<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>

非常适合我。

答案 4 :(得分:-1)

我不确定背景的主题是什么,但我只是将自定义布局(小视图和大视图)的背景设​​置为xml中的深色。然后,这会更紧密地匹配前Lollipop通知。

我觉得奇怪的是,当标准通知颜色为白色时,android:TextAppearance.StatusBar.EventContent.Title的外观不会调整为Lollipop的深色!