Utiliser l'espace de noms d'application avec style


103

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

Imaginez que mon application dispose d'un certain nombre de FloatingActionButtons. Par conséquent, je souhaite 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 j'ai, c'est que le code ne se compile pas car il se plaint de

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

J'ai essayé d'introduire l'espace de noms via la resourcesbalise 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 sur la façon dont je pourrais faire fonctionner cela?


Réponses:


229

Pour l' appespace de noms, vous n'avez pas besoin de spécifier app:<property name>. C'est juste <property name>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_anchorGravityvous devez le définir dans un fichier XML où vous définissez le bouton d'action flottant.


Impressionnant! Merci pour ton aide. Correction mineure: vous pouvez également définir layout_anchorGravitysur la page de style. Il fonctionne comme<item name="layout_anchorGravity">end|bottom</item>
Nouvel Travay

vous avez sauvé la journée! Et celui à définir localement est layout_anchor. +1!
Nouvel Travay
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.