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?


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.