所以我定义了一个自定义属性:
<resources>
<attr name="filterColor" format="color"/>
</resources>
我没有在 中声明它以在其他自定义视图中重复使用它。 但是,我无法像这样使用它
<SomeView
app:filterColor="@color/my_color"/>
我也无法从AttributeSet
获取它final TypedArray a = getContext().obtainStyledAttributes(attrs, new int[]{R.attr.filterColor});
这让我发疯了 - 如果我们不能使用它们,为什么我们可以宣布全局自定义属性呢?
答案 0 :(得分:0)
如果不出意外,您的XML似乎缺少<declare-styleable>
元素:
<resources>
<declare-styleable name="ColorMixer">
<attr name="color" format="color" />
</declare-styleable>
</resources>
(从this library project拉出来)
name
中的declare-styleable
应该是将使用该属性(在您的情况下为SomeView
)的视图的类名。
the documentation中介绍了这一点。