NotificationCompat.Builder setContentText () не показывает CSS цвет в темном режиме - PullRequest
0 голосов
/ 12 февраля 2020

Я отображаю текст во второй строке моего уведомления, используя builder.setContentText(txt), где txt - это фактически стилизованный текст на основе html, включая CSS цветов, для создания цветного текста.

Я использую код:

NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId);
// ... various stuff ... then ...
String decodedHeader = Uri.decode(header);
Log.d(TAG, "decodedHeader: " + decodedHeader);
Spanned styledText = HtmlCompat.fromHtml(decodedHeader, HtmlCompat.FROM_HTML_MODE_LEGACY);
builder.setContentText(styledText);
Notification notification = builder.build();

и вывод журнала (для отображения содержимого html / css):

decodedHeader: <span style="color:#333333;">↓72%</span><span style="color:#333333;"> │ </span><span style="color:#0ca911;">5°C</span><span style="color:#333333;"> │ </span><span style="color:#ff3333;">2°C↓</span><span style="color:#333333;"> │ </span><span style="color:#ff80c1;">4°C</span><span style="color:#333333;"> │ </span><span style="color:#00764a;">92%</span><span style="color:#333333;"> │ </span><span style="color:#5546ff;">14 mm</span><span style="color:#333333;"> │ </span><span style="color:#fd93fd;">8 (17) mph</span><span style="color:#333333;"> │ </span><span style="color:#333333;">19:34</span>

Когда система (работает * 1029) * 10) в светлом режиме, уведомление показывает эти цвета просто отлично:

enter image description here

, но когда система находится в темном режиме, цвета теряются :

enter image description here

это просто что-то навязанное системой, над которым у меня нет контроля?

1 Ответ

0 голосов
/ 13 февраля 2020

В документах они четко сказали

Темы и стили Ваши темы и стили должны избегать жестко заданных цветов или значков, предназначенных для использования в легкой теме. Вместо этого следует использовать атрибуты темы (предпочтительно) или ресурсы, определенные ночью.

А также для указания c для уведомлений.

Распространенные ловушки, на которые следует обратить внимание:

  • Предполагая, что цвет фона всегда светлый
  • Жесткое кодирование цветов текста
  • Установка цвета фона в жестком коде при использовании цвета текста по умолчанию
  • Использование рисованного текста иконка, которая имеет статус c color

Во всех этих случаях используйте соответствующие атрибуты темы вместо жестко заданных цветов.

...