App-Namespace mit Stil verwenden

103

Ich werde ein Beispiel geben, um den größeren Punkt zu demonstrieren.

Stellen Sie sich vor, meine App verfügt über eine Reihe von FloatingActionButtons. Folglich möchte ich einen Stil erstellen und wiederverwenden. Also mache ich folgendes:

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

Das Problem, das ich habe, ist, dass der Code nicht kompiliert wird, weil er sich beschwert

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

Ich habe versucht, den Namespace über das resourcesTag einzufügen, aber das funktioniert nicht

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

Irgendwelche Ideen, wie ich das zum Laufen bringen könnte?

Nouvel Travay
quelle
1
Siehe auch
styler1972

Antworten:

228

Für den appNamespace müssen Sie nichts angeben app:<property name>. Ist einfach <property name>genug.

Beispielsweise

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

Und denn layout_anchorGravitySie müssen es in einer XML-Datei festlegen, in der Sie die schwebende Aktionsschaltfläche definieren.

dex
quelle
Genial! Danke fürs Helfen. Kleinere Korrekturen: Sie können diese auch layout_anchorGravityauf der Stilseite definieren . Es funktioniert als<item name="layout_anchorGravity">end|bottom</item>
Nouvel Travay
Du hast den Tag gerettet! Und die lokal zu definierende ist layout_anchor. +1!
Nouvel Travay