Цвета текста устарели на уровне API 28 - PullRequest
1 голос
/ 08 апреля 2020

У меня есть код:

val color = if(...)
              android.R.color.darker_gray
            else
              android.R.color.secondary_text_dark

Значение android.R.color.secondary_text_dark теперь устарело на уровне API 28 , оно говорит: «Вместо этого используйте цвет текста из вашей темы». В списке есть постоянное значение и скобка «17170437 (0x01060005)», но я не могу понять эти эти значения цвета, так как их нельзя ввести в colors.xml, поскольку шестнадцатеричные значения цвета должны быть в формате, например "#ffxxxx".

Может кто-нибудь сказать мне, что означают эти постоянные числа? Есть ли другое отношение к цвету текста по сравнению с обычными цветами? Если я хочу сохранить то же поведение, как мне извлечь эти значения цвета?

1 Ответ

0 голосов
/ 08 апреля 2020

После копания я понял, что android.R.color.secondary_text_dark на самом деле не значение цвета, а сам селектор в имени файла secondary_text_dark.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="false" android:color="@android:color/dim_foreground_dark_disabled"/>
<item android:state_window_focused="false" android:color="@android:color/dim_foreground_dark"/>
<item android:state_selected="true" android:state_enabled="false" android:color="@android:color/dim_foreground_dark_inverse_disabled"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="@android:color/dim_foreground_dark_inverse_disabled"/>
<item android:state_selected="true" android:color="@android:color/dim_foreground_dark_inverse"/>
<item android:state_activated="true" android:color="@android:color/bright_foreground_dark_inverse"/>
<item android:state_pressed="true" android:color="@android:color/dim_foreground_dark_inverse"/>
<item android:state_enabled="false" android:color="@android:color/dim_foreground_dark_disabled"/>
<item android:color="@android:color/dim_foreground_dark"/> 
</selector>

С этим я могу скопировать его содержимое в мою папку res/animator, извлеките все значения цвета, к которым оно относится, и вызовите R.animator.secondary_text_dark из моего кода.

...