如何使用AppCompat覆盖CheckBox颜色

时间:2015-01-22 18:51:27

标签: android checkbox android-appcompat

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

为Lollipop设置它
android:buttonTint="@color/colorPrimaryLight"
在CheckBox中

但我不知道如何在Lollipop之前做任何事情而不改变

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

在我的主题中。

CheckBox for Lollipop:

<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" />

以及棒棒糖之前的任何事情(并且高于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)?

1 个答案:

答案 0 :(得分:8)

在App compat主题中使用以下属性,如下所示

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

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