Використання простору імен додатків у стилі


103

Я надам приклад, щоб продемонструвати більшу точку зору.

Уявіть, що в моєму додатку є кілька FloatingActionButtons. Отже, я хочу створити один стиль і використовувати його повторно. Тому я роблю наступне:

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

Будь-які ідеї, як я можу змусити це працювати?


Відповіді:


229

Для appпростору імен не потрібно вказувати app:<property name>. Просто <property name>достатньо.

Наприклад

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

А для цього layout_anchorGravityвам потрібно встановити його у XML-файлі, де ви визначаєте плаваючу кнопку дії.


Дивовижно! дякую за допомогу. Незначна корекція: її можна визначити і layout_anchorGravityна сторінці стилів. <item name="layout_anchorGravity">end|bottom</item>
Діє

ти врятував день! І той, який має бути визначений локально, - це layout_anchor. +1!
Ноувел Травай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.