如何使用 AppCompat 覆盖复选框颜色

How to override CheckBox color using AppCompat

选中我的复选框时,我希望颜色为@color/colorPrimaryLight。我可以通过设置

为 Lollipop 设置这种方式
android:buttonTint="@color/colorPrimaryLight"

在 CheckBox 中,但我不知道如何在 Lollipop 之前不做任何更改

    <item name="colorControlActivated">@color/white</item>

在我的主题中。

棒棒糖复选框:

<CheckBox
android:buttonTint="@color/colorPrimaryLight"
android:id="@+id/SwapCheckbox"
android:layout_marginTop="@dimen/margin_top"
android:layout_marginLeft="@dimen/margin_left_right"
android:layout_marginRight="@dimen/margin_left_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

对于 Lollipop 之前的任何版本(以及高于 4.0.3):

<CheckBox
android:id="@+id/SwapCheckbox"
android:layout_marginTop="@dimen/margin_top"
android:layout_marginLeft="@dimen/margin_left_right"
android:layout_marginRight="@dimen/margin_left_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

我的应用程序主题中也有:

<style name="AppTheme" parent="Theme.AppCompat.Light">
//...
<item name="colorControlActivated">@color/white</item>
//...
</style>

我无法更改 colorControlActivated,因为我的 ViewPager 中的指示器必须为白色。无论如何要更改我的复选框的背景颜色(即使它是默认的 Holo 样式,但最好将其设置为 @color/colorPrimaryLight)?

在App compat主题中使用如下属性

<style name="AppTheme" parent="Theme.AppCompat.Light">
  <item name="colorAccent">@color/colorAccent</item>
</style>

并使用 android.support.v7.widget.AppCompatCheckBox instead of CheckBox