Menggunakan ruang nama Aplikasi dengan gaya

103

Saya akan memberikan contoh untuk mendemonstrasikan poin yang lebih besar.

Bayangkan aplikasi saya memiliki sejumlah FloatingActionButtons. Akibatnya, saya ingin membuat satu gaya dan menggunakannya kembali. Jadi saya melakukan hal berikut:

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

Masalah yang saya alami adalah bahwa kode tidak dapat dikompilasi karena dikeluhkan

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

Saya mencoba memasukkan namespace melalui resourcestag tetapi tidak berhasil

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

Ada ide bagaimana saya bisa membuat ini bekerja?

Nouvel Travay
sumber

Jawaban:

229

Untuk appnamespace Anda tidak perlu menentukan app:<property name>. Hanya <property name>cukup.

Sebagai contoh

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

Dan untuk layout_anchorGravityAnda perlu mengaturnya dalam file XML di mana Anda mendefinisikan tombol aksi Mengambang.

dex
sumber
Hebat! terima kasih telah membantu. Koreksi kecil: Anda juga dapat menentukan layout_anchorGravitypada halaman gaya. Ini berfungsi sebagai<item name="layout_anchorGravity">end|bottom</item>
Nouvel Travay
Anda menyelamatkan hari itu! Dan yang harus didefinisikan secara lokal adalah layout_anchor. +1!
Nouvel Travay