Разница между "selectableItemBackground", "android:selectableItemBackground" и "android:attr/selectableItemBackground в Android"

В чем разница между:

android:background="?selectableItemBackground"

android:background="?attr/selectableItemBackground"

android:background="?android:selectableItemBackground"

android:background="?android:attr/selectableItemBackground" 

в Android?

2 ответа

Решение

Вот,

android:background="?selectableItemBackground"

является ссылкой на атрибут из библиотеки appCompat, поэтому она применяется к более старым версиям Android и не нуждается в префиксе Android.

android:background="?android:selectableItemBackground"

Это атрибут, предоставляемый платформой, которая может не поддерживать более старые версии Android, но только из представленной версии.

android:background="?android:attr/selectableItemBackground"

Здесь использование атрибута относится к атрибуту, определенному для текущей темы. т. е. если у вас установлена ​​тема приложения для облегченной версии, то будет применен selectableItemBackground из светлой темы.

И вы можете определить свои собственные значения, которые могут быть доступны без использования префикса Android.

Все они делают одну и ту же работу. Единственное отличие состоит в том, что префикс android предназначен для android 3.0 и выше, и если вы хотите использовать тот же атрибут для android 2.3 и ниже, вы должны удалить префикс android. Спасибо

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