ใช้เนมสเปซของแอพอย่างมีสไตล์


106

ฉันจะยกตัวอย่างเพื่อแสดงให้เห็นถึงจุดที่ยิ่งใหญ่กว่า

ลองนึกภาพแอปของฉันมี 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"
    >

มีความคิดอย่างไรที่ฉันจะทำให้สิ่งนี้ได้ผล


1
ที่เกี่ยวข้อง: stackoverflow.com/questions/6860886/…
styler1972

คำตอบ:


236

สำหรับappnamespace 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>
Nouvel Travay

คุณช่วยวัน! layout_anchorและเป็นหนึ่งที่จะกำหนดในประเทศเป็น +1!
Nouvel Travay
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.