Я собираюсь привести пример, чтобы продемонстрировать главное.
Представьте, что в моем приложении есть несколько кнопок FloatingActionButton. Следовательно, я хочу создать один стиль и повторно использовать его. Итак, я делаю следующее:
<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>
Проблема, с которой я столкнулся, заключается в том, что код не компилируется, потому что он жалуется на
Error:(40, 5) No resource found that matches the given name: attr 'app:backgroundTint'.
Я попытался ввести пространство имен через resources
тег, но это не работает
<resources
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
>
Есть идеи, как я могу заставить это работать?
android
android-layout
android-theme
android-styles
Nouvel Travay
источник
источник
Ответы:
Для
app
пространства имен указывать не нужноapp:<property name>
. Просто<property name>
достаточно.Например
И
layout_anchorGravity
вам нужно установить его в XML-файле, в котором вы определяете плавающую кнопку действия.источник
layout_anchorGravity
на странице стилей. Это работает как<item name="layout_anchorGravity">end|bottom</item>
layout_anchor
. +1!