我有一个自定义首选项控件,我在 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 项目中的包名称不同而犹豫不决。
有人对在包含 Android 项目中仍然有效的库项目中使用 xmlns 引用有任何想法吗?
当他们考虑库时,declare-styleables 只是 Android 团队的疏忽吗?