为什么styles.xml中的textcolor属性不会影响我的复选框?

时间:2016-06-15 18:06:02

标签: android xml checkbox

我在styles.xml中设置了我的应用程序。我有这个custom_checkbox.xml:

<CheckBox
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/checkboxForActionBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:text="10%"
    android:textColor="@android:color/white"
    app:theme="@style/AppTheme"
    />

我在styles.xml设置复选框颜色,colorControlNormalcolorControlActivated

<?xml version="1.0" encoding="utf-8"?>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorAccent">@color/accent</item>
        <item name="android:textColor">@color/primary_text</item>
        <item name="android:colorControlNormal">@android:color/white</item>
        <item name="android:colorControlActivated">@color/accent</item>
    </style>

另外,我有一个alertDialog,其复选框用:

创建

final AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(getContext(), R.style.CustomDialog)).setTitle("Title here").setMultiChoiceItems(mItems, mSelection, this);

复选框中的颜色在styles.xml中设置,textColor属性除外。

问题是:alertDialog复选框中的文本没有得到styles.xml中android:textColor的颜色集。此外,当我从custom_checkbox中删除android:textColor属性时,AppTheme中的textColor属性不会设置文本的颜色。

为什么会这样? textColor是Styles.xml中的正确属性来设置这种文本的颜色吗?

1 个答案:

答案 0 :(得分:0)

我刚刚发现。 textColorPrimaryDisableOnly修复了我的custom_checkbox中的文本,并修复了对话框列表中的textColorAlertDialogListItem

只需在styles.xml中添加这些:

<item name="android:textColorPrimaryDisableOnly">@android:color/white</item>
<item name="android:textColorAlertDialogListItem">@android:color/white</item>