У меня есть виджет приложения с белым фоном. Часть отображаемого текста использует ?android:textColorPrimary
, часть использует ?android:textColorSecondary
, а часть использует определенные мной цвета.
Однако по какой-то причине, когда я запускаю свое приложение на версии до Nougat (24 или ниже), цвета белые, так что текст невидим на белом фоне, но все, что 24 и выше, отображается как черный или серый. Цвета, которые я определил, всегда в порядке.
Что также интересно, так это то, что код в виджете приложения почти идентичен фактическому приложению (оба отображают список элементов), а версия приложения (даже на этих старых API) использует темные цвета, но виджет по какой-то причине выбирает белые цвета для текст.
Если я проследю код XML в стилях, я доберусь до этого:
<!-- The most prominent text color. -->
<attr name="textColorPrimary" format="reference|color" />
Что это значит? Как он узнает, какой самый заметный цвет текста? Почему виджет отличается от приложения и почему только в старых версиях API?
Могу ли я что-нибудь сделать, чтобы исправить это, чтобы оно было последовательным? Я использую ту же тему. Почему это произошло?
Примечание. Я не спрашиваю об установке определенного цвета. Конечно, я мог бы просто сделать текст черным или что-то в этом роде, но я хочу использовать эти стили, чтобы в будущем цвет мог меняться по мере необходимости, тем более что я использую тему день/ночь. Может, это связано с этим? Хорошо, я попробовал обычную тему, но проблема не устранена (текст невидим на виджете - только виджет - на более старых, чем API 24).
Пожалуйста, дайте мне знать, если что-то неясно, и я обновлю вопрос. Спасибо.
android:shadowColor="@colors/black"
,android:shadowDx="1dp"
,android:shadowDy="1dp"
,android:shadowRadius="1"
. См. официальную документацию. - person Phantômaxx   schedule 13.08.2017