黑暗主题更改时,Android 10通知颜色不会更改

时间:2019-10-02 22:32:14

标签: android android-notifications android-10.0 android-dark-theme android-darkmode

我收到一些操作通知。然后,我使用Notification.Builder为操作和图标着色设置颜色。这是创建通知的完整代码。

val notification = Notification.Builder(context,
                CHANNEL_ID)
                .setContentTitle(title)
                .setContentText(mainText)
                .setSmallIcon(R.drawable.small_icon)
                .setContentIntent(pendingIntent)
                .addAction(Notification.Action.Builder(
                        Icon.createWithResource(
                                this, R.drawable.action_icon),
                        getString(R.string.action_title),
                        actionPendingIntent)
                        .build())
                .setStyle(Notification.InboxStyle()
                        .addLine(mainText)
                        .addLine(subText)
                        .addLine(secondSubText)
                        .setBigContentTitle(title)
                        .setSummaryText(summaryText))
                .setColor(getColor(R.color.notification_accent))
                .build()

R.color.notification_accentvalues中都声明了颜色values-night,并且具有不同的颜色。该应用程序的基本主题也从Theme.MaterialComponents.DayNight扩展而来。而且,在设备中启用/禁用深色主题时,整个应用程序会在主题之间正确切换。

当我创建通知时,始终会正确创建它,因此,当启用深色主题时,将使用values-night中的颜色,而当其关闭时,将使用values颜色。

问题是当主题更改并且通知已经可见时。我可以看到通知实际上是在变化,因为背景从黑暗变为明亮,但是操作的颜色没有变化。

我猜测是因为颜色不是通知主题的一部分,但我不确定该如何处理,或者它是Notification.Builder中的错误。

编辑: 在运行API 29的仿真器上会发生此行为。在设备上运行应用程序时,行为正确,颜​​色会更改。我正在回答自己说要使用设备的问题。

1 个答案:

答案 0 :(得分:0)

此问题发生在模拟器上。在真实设备中,不会发生此问题,并且当深色主题更改时,通知的颜色也会更改。