0

API 21+:Faire une référence en fonction de l'API à un thème de style

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

API < 21:

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

Comment est-il possible?


Je sais la solution qui utilise "?attr/API_dependent_theme_reference" comme this. Cela ne fonctionne pas pour mise en page App Widget, malheureusement.

, je sais aussi la solution utilise style="..." pour les view et multiples définitions de style dans values et values-v21 dossiers. Mais la recherche d'un moyen d'attribuer directement la propriété background (en particulier en tant qu'Android, malheureusement, ne supporte pas l'attribution de plusieurs styles comme CSS: class="style1 style2 etc"!).

Répondre

0

Vous pouvez avoir deux dessinables sur mesure

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> 

et

drawable-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

Merci pour votre réponse. Mais malheureusement _ "Utiliser les références de thème dans les tirages XML" lui-même "** requiert le niveau d'API 21 **" _. Voir [ce message sans réponse] (http://stackoverflow.com/q/41650820/5318303). Si quelqu'un peut répondre à cette question, votre réponse sera automatiquement correcte :). –