Ứng dụng Android
Nếu bạn không sử dụng Android Libraries, sau đó đây là những gì bạn có thể làm:
- Xác định thuộc tính tùy chỉnh styleable (tôi đoán bạn đã làm điều đó).
- Không sử dụng tiền tố không gian tên của bạn trong các mục kiểu (không gian tên mặc định cho không gian tên của ứng dụng hiện tại).
Ví dụ:
Trong attrs.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="testAttr" format="string"/>
</resources>
Trong styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="TestStyle" >
<item name="testAttr">asdf</item>
</style>
</resources>
Thư viện Android
Nếu thuộc tính tùy chỉnh đến từ Thư viện Android, bạn vẫn có thể sử dụng phương pháp được mô tả. Về mặt lý thuyết nó nên hoạt động, vì không gian tên của Thư viện Android giống như của ứng dụng (từ quan điểm công cụ aapt
trong khi xây dựng). Nhưng tôi chưa tự mình thử nghiệm điều này.
Nếu bạn chỉ định không gian tên, nó sẽ hiển thị lỗi. Theo tôi biết, các kiểu không hỗ trợ không gian tên xml. Vì vậy, đây sẽ thất bại:
Trong styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:app="http://schemas.android.com/apk/res/app.package.name">
<style name="TestStyle" >
<item name="app:testAttr">asdf</item>
</style>
</resources>
Parser tự động mặc định là namespace AndroidManifest
ứng dụng hiện tại, mặc dù bạn không thể xác định không gian tên này một cách rõ ràng.
chọn câu trả lời là sai/không đầy đủ. Bạn có thể tạo kiểu cho các phần tử giao diện người dùng tùy chỉnh trong tệp kiểu, tự mình thực hiện ... Xem câu trả lời của tôi ví dụ – Kurru