web-dev-qa-db-fra.com

Utiliser un espace de noms d'application avec style

Je vais donner un exemple pour démontrer le plus grand point.

Imaginez que mon application comporte un certain nombre de boutons FloatingAction. Par conséquent, je veux créer un style et le réutiliser. Alors je fais ce qui suit:

<style name="FabStyle” parent ="Widget.Design.FloatingActionButton">
    <item name="Android:layout_width">wrap_content</item>
    <item name="Android:layout_height">wrap_content</item>
    <item name="Android:layout_margin">16dp</item>
    <item name="app:backgroundTint">@color/accent</item>
    <item name="app:layout_anchorGravity">end|bottom</item>
</style>

Le problème que je rencontre est que le code n’est pas compilé car il se plaint de

Error:(40, 5) No resource found that matches the given name: attr 'app:backgroundTint'.

J'ai essayé d'amener l'espace de noms via la balise resources mais cela ne fonctionne pas

<resources
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    >

Des idées comment je pourrais obtenir ceci pour fonctionner?

72
Nouvel Travay

Pour app: namespace vous n'avez pas besoin de spécifier app:<property name>. Juste <property name> est assez.

par exemple

<style name="FabStyle” parent ="Widget.Design.FloatingActionButton"> 
    <item name="Android:layout_width">wrap_content</item>
    <item name="Android:layout_height">wrap_content</item>
    <item name="Android:layout_margin">16dp</item>
    <item name="backgroundTint">@color/accent</item>
    <item name="layout_anchorGravity">end|bottom</item>
</style>

et pour layout_anchorGravity vous devez le définir dans un fichier XML dans lequel vous définissez le bouton d'action flottante.

157
dex