Android "? ColorPrimary" против "attr/colorPrimary"?

Я не могу найти информацию о различиях между:

android:textColor="?attr/colorPrimary"

против

android:textColor="?colorPrimary"

Я читал, что "? Attr" означает значение атрибута, указанное в текущей теме, но без "attr" он дает тот же результат (= цвет, определенный в моей теме). Он ведет себя аналогично с другими атрибутами?

Например:

Есть ли android:background="?attr/selectableItemBackground" равняется android:background="?selectableItemBackground"?

Здесь сказано, что он отличается.

Спасибо большое.

1 ответ

Хорошо, я наконец нашел в документах:

Поскольку инструмент системных ресурсов знает, что в этом контексте ожидается ресурс атрибута, вам не нужно явно указывать тип (это будет? Android: attr / textColorSecondary) - вы можете исключить тип attr.

Итак, я вычел это так: атрибуты библиотеки AppCompat обрабатываются как пользовательские атрибуты, и в результате мы указываем их на знак вопроса без ключевого слова "android". И "attr" - это тип ресурса, который является необязательным как для платформы, так и для пользовательских атрибутов (из документации). Android документация

Другие вопросы по тегам