user1026605
user1026605

Reputation: 1430

How to get the default notification background color for custom notification in Lollipop?

I'm having an issue with the color of my custom notification background in Lollipop. It's black where it should be white. The textColor is OK:

I'm using

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

Any idea how to use the device default theme color for custom notification ?

Upvotes: 18

Views: 8319

Answers (5)

3c71
3c71

Reputation: 4541

To solve this, you have 2 options:

1) Target SDK 21, and custom notification will automatically use a white background

2) Copy your existing layout to layout-v21 folder and add android:background="#FFFFFFFF" to its root, like this:

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

Works great for me.

Upvotes: 0

user1874565
user1874565

Reputation: 26

Create folder values-v21/styles.xml and past the below code,

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

Upvotes: 0

conanoc
conanoc

Reputation: 71

Your app's targetSdkVersion must be 21.
As Ahmed's answere, add another styles file in values-21 folder.

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

Upvotes: 7

Rahat Ahmed
Rahat Ahmed

Reputation: 2180

For whatever reason, there are new styles in Lollipop. Put this in 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>

Upvotes: 5

Barry Irvine
Barry Irvine

Reputation: 13887

I'm not sure what the theme of the background is but I just set the background of my custom layouts (small view and large view) to a dark colour in the xml. This then matches the pre-Lollipop notifications more closely.

I find it bizarre that the appearance of android:TextAppearance.StatusBar.EventContent.Title doesn't adjust to a dark colour for Lollipop when the standard notification colour is white!

Upvotes: -1

Related Questions