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 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?
android
android-layout
android-theme
android-styles
Nouvel Travay
fuente
fuente
Respuestas:
Para el
app
espacio de nombres, no es necesario especificarloapp:<property name>
. Solo<property name>
es suficiente.Por ejemplo
Y para ello
layout_anchorGravity
, debe configurarlo en un archivo XML donde está definiendo el botón de acción flotante.fuente
layout_anchorGravity
en la página de estilo. Funciona como<item name="layout_anchorGravity">end|bottom</item>
layout_anchor
. +1!