0

API 21+:Сделать API-зависимый ссылку на тему стиля

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

< API 21:

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

Как это возможно?


Я знаю, что решение, которое использует "?attr/API_dependent_theme_reference" как this. Это не работает для App Widget layout, к сожалению.

Кроме того, я знаю, что решение использует style="..." для view и несколько определений стиля в values и values-v21 папки. Но ищет способ напрямую назначить свойство background (тем более что Android, к сожалению, не поддерживает назначение нескольких стилей, таких как CSS: class="style1 style2 etc"!).

ответ

0

Вы можете иметь два пользовательских вводимый коэффициент

Drawable/backround_name.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="?android:attr/selectableItemBackground" 
</layer-list> 

и

вытяжка-V21/backround_name.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="?android:attr/selectableItemBackgroundBorderless" 
</layer-list> 
+3

Спасибо за ваш ответ. Но, к сожалению, «Использование ссылок на темы в самих XML-чертежах» ** требует API-уровня 21 ** «_. См. [Этот неотвеченный пост] (http://stackoverflow.com/q/41650820/5318303). Если кто-то может ответить на этот вопрос, ваш ответ будет правильным автоматически :). –