我创建了一个自定义小部件,并在 layout.xml 中声明它。我还在 attr.xml 中添加了一些自定义属性。但是,当尝试在 styles.xml 中以样式声明这些属性时,它给了我No resource found that matches the given name: attr 'custom:attribute'.
No resource found that matches the given name: attr 'custom:attribute'.
我已将xmlns:custom="http://schemas.android.com/apk/res/com.my.package"所有标签放入 styles.xml 中,包括<?xml>、<resources>和<style>,但它仍然给我同样的错误,它找不到我的自定义 XML 命名空间。
xmlns:custom="http://schemas.android.com/apk/res/com.my.package"
<?xml>
<resources>
<style>
但是,我可以使用我的命名空间手动为 layout.xml 中的视图分配属性,因此命名空间没有任何问题。我的问题在于让styles.xml 知道我的attr.xml。
我想到了!答案是 不要 在样式中指定命名空间。
<?xml version="1.0" encoding="utf-8" ?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="CustomStyle"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="custom_attr">value</item> <!-- tee hee --> </style> </resources>