Sử dụng không gian tên ứng dụng theo phong cách


103

Tôi sẽ đưa ra một ví dụ để chứng minh điểm quan trọng hơn.

Hãy tưởng tượng ứng dụng của tôi có một số FloatingActionButtons. Do đó, tôi muốn tạo một kiểu và sử dụng lại nó. Vì vậy, tôi làm như sau:

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

Vấn đề tôi đang gặp phải là mã không được biên dịch vì nó đang phàn nàn về

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

Tôi đã thử đưa không gian tên vào thông qua resourcesthẻ nhưng điều đó không hoạt động

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

Bất kỳ ý tưởng làm thế nào tôi có thể làm cho nó hoạt động?


Câu trả lời:


228

Đối với appkhông gian tên, bạn không cần chỉ định app:<property name>. Chỉ cần <property name>là đủ.

Ví dụ

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

Và đối với layout_anchorGravitybạn, bạn cần đặt nó trong tệp XML, nơi bạn đang xác định nút hành động Nổi.


Tuyệt vời! cảm ơn vì đã giúp đỡ. Chỉnh sửa nhỏ: bạn cũng có thể xác định layout_anchorGravitytrên trang kiểu. Nó hoạt động như<item name="layout_anchorGravity">end|bottom</item>
Nouvel Travay.

bạn đã lưu trong ngày! Và một trong những được xác định cục bộ là layout_anchor. +1!
Nouvel Travay
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.