带有colorAcent的主题(材质支持appcompat)不适用于自定义小部件

时间:2014-11-02 04:31:11

标签: android android-layout android-styles android-appcompat

我有一个从CheckBox扩展的MyCheckBox。

我在colorAcent属性中设置了一个颜色,在我的应用程序的主题中。

我注意到MyCheckBox的每个复选框都有黑色图标,但如果我声明一个原生的CheckBox,他会得到colorAcent中定义的颜色。

你知道为什么吗?

2 个答案:

答案 0 :(得分:3)

这是AppCompat v7支持库中的已知限制。请参阅此Android Developer blog post中的常见问题解答。

如果您希望使用支持的小部件的色调功能,基本上您必须在XML通胀中使用系统小部件。

答案 1 :(得分:0)

倩倩是对的,这是一个已知的限制。支持库实际上监视布局何时膨胀,并用支持等价物替换原始小部件实现。但是,这仅适用于标准小部件...

您仍然可以通过直接从支持库版本继承自定义组件来解决此限制。该过程在this post中描述,但请注意,类名已更改!

现在,例如,您必须扩展AppCompatSpinner而不是Spinner(TintSpinner在支持库中不再存在)。