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

Android 带有colorAcent(材质支持appcompat)的主题不适用于自定义小部件,android,android-layout,android-styles,android-appcompat,Android,Android Layout,Android Styles,Android Appcompat,我有一个MyCheckBox,它是从CheckBox扩展而来的 在应用程序的主题中,我在colorAcent属性中设置了颜色 我注意到每个MyCheckBox的复选框都会显示黑色图标,但如果我声明一个原生复选框,它会显示colorAcent中定义的颜色 您知道原因吗?这是AppCompat v7支持库中的已知限制。请参阅本文中的常见问题解答 基本上,如果您希望使用受支持的小部件的着色功能,您必须在XML中使用系统小部件。Qianqian是正确的,这是一个已知的限制。支持库实际上监视布局何时膨胀,

我有一个MyCheckBox,它是从CheckBox扩展而来的

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

我注意到每个MyCheckBox的复选框都会显示黑色图标,但如果我声明一个原生复选框,它会显示colorAcent中定义的颜色


您知道原因吗?

这是AppCompat v7支持库中的已知限制。请参阅本文中的常见问题解答


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

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

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

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