Voy a dar un ejemplo para demostrar el punto más importante.
Imagina que mi aplicación tiene una cantidad de FloatingActionButtons. En consecuencia, quiero crear un estilo y reutilizarlo. Así que 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 de
Error:(40, 5) No resource found that matches the given name: attr 'app:backgroundTint'.
Intenté traer el espacio de nombres a través del resources
etiqueta 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?
dex
Para app
espacio de nombres que no necesita especificar app:<property name>
. Sólo <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 layout_anchorGravity
debe configurarlo en el archivo XML donde está definiendo el botón de acción flotante.
-
¡Impresionante! gracias por ayudar. Corrección menor: puedes definir
layout_anchorGravity
en la página de estilo también. funciona como<item name="layout_anchorGravity">end|bottom</item>
– Nuevo viaje
5 sep 2016 a las 20:36
-
¡salvaste el día! Y el que se definirá localmente es
layout_anchor
. +1!– Nuevo viaje
5 sep 2016 a las 20:41
-
Bueno, al hacerlo resolvió el error mencionado por OP. Incluso predictor de texto para
styles.xml
sugiere las propiedades; pero de alguna manera es como si estas propiedades no se aplicaran en absoluto después de construir… Me pregunto por qué…– Sebas SBM
8 jun a las 17:20
Puede utilizar directamente la propiedad sin app
<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>
Relacionado: stackoverflow.com/questions/6860886/…
– tyler
2 oct 2017 a las 21:07