Utilizzo dello spazio dei nomi delle app con stile


103

Darò un esempio per dimostrare il punto più importante.

Immagina che la mia app abbia un numero di FloatingActionButtons. Di conseguenza, voglio creare uno stile e riutilizzarlo. Quindi faccio quanto segue:

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

Il problema che ho è che il codice non viene compilato perché si lamenta

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

Ho provato a portare lo spazio dei nomi attraverso il resourcestag ma non funziona

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

Qualche idea su come potrei farlo funzionare?


Risposte:


229

Per lo appspazio dei nomi non è necessario specificare app:<property name>. È appena <property name>abbastanza.

Per esempio

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

E per layout_anchorGravityte è necessario impostarlo nel file XML dove stai definendo il pulsante di azione mobile.


Eccezionale! grazie dell'aiuto. Correzione minore: puoi definire anche layout_anchorGravitynella pagina dello stile. Funziona come<item name="layout_anchorGravity">end|bottom</item>
Nouvel Travay

hai salvato la giornata! E quello da definire localmente è layout_anchor. +1!
Nouvel Travay
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.