Usar el espacio de nombres de la aplicación con estilo

103

Voy a dar un ejemplo para demostrar el punto más importante.

Imagina que mi aplicación tiene varios FloatingActionButtons. En consecuencia, quiero crear un estilo y reutilizarlo. Entonces hago lo siguiente:

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

El problema que tengo es que el código no se compila porque se queja

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

Intenté traer el espacio de nombres a través de la resourcesetiqueta, pero eso no funciona

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

¿Alguna idea de cómo podría hacer que esto funcione?

Nouvel Travay
fuente
1
Relacionado: stackoverflow.com/questions/6860886/…
styler1972

Respuestas:

229

Para el appespacio de nombres, no es necesario especificarlo app:<property name>. Solo <property name>es suficiente.

Por ejemplo

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

Y para ello layout_anchorGravity, debe configurarlo en un archivo XML donde está definiendo el botón de acción flotante.

dex
fuente
¡Increíble! gracias por ayudar. Corrección menor: también puede definir layout_anchorGravityen la página de estilo. Funciona como<item name="layout_anchorGravity">end|bottom</item>
Nouvel Travay
salvaste el dia! Y el que se definirá localmente es layout_anchor. +1!
Nouvel Travay