我有一个自定义的首选项控件,我在values/attrs.xml中定义了一些属性。为了聚焦讨论,这里是一个在values/attrs.xml中可能找到的属性示例:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyCustomView">
<attr name="android:text"/>
<attr name="android:textColor"/>
<attr name="extraInformation" format="string" />
</declare-styleable>
</resources>
要使用属性,您需要在希望使用它的位置使用xmlns标签,它看起来像这样:
xmlns:custom="http://schemas.android.com/apk/res/com.conundrum.app.lib"
问题在于:xmlns定义引用了LIBRARY的包名,在LIBRARY项目中,此资源可以编译通过。但是,包含Library项目的Android项目具有不同的包名,并且Android试图合并所有资源。当它到达这个xmlns定义时,它会停止,因为在包含的Android项目中包名不同。
有没有人有关于如何在Library项目中使用xmlns引用以在包含的Android项目中仍然有效的想法?
当Android考虑库时,declare-styleables是否只是Android团队的疏忽?