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 документация