为什么android:textAppearance中的textColor被忽略了?

时间:2016-09-17 14:36:59

标签: android android-support-library

我使用android支持库,我不知道哪个版本,因为我不知道如何检查它。我面临的问题显然是android:textColor属性的值被忽略。如果我定义一个样式并将其指定给EditText的textAppearance,则会忽略颜色textColor。

所以,我有以下布局:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <!-- This text should be red, but it is black -->
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Text color via TextAppearance"
        android:textAppearance="@style/TextAppearance.EditText" />

    <!-- The hint should be green, but it is grey -->
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Hint color via TextAppearance"
        android:textAppearance="@style/TextAppearance.EditText" />

     <!-- Text is red as set in android:textColor -->
     <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Text color via android:textColor"
        android:textColor="#880000"
        android:textSize="18sp" />

    <!-- Hint is green as set in android:textColorHint -->
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Hint color via android:textColorHint"
        android:textColorHint="#008800"
        android:textSize="18sp" />

</LinearLayout>

我定义了以下样式:

<!-- Text Appearance -->
<style name="TextAppearance.EditText" parent="">
    <item name="android:textColor">#880000</item>      <!-- this color is ignored -->
    <item name="android:textColorHint">#008800</item>  <!-- this color is ignored -->
    <item name="android:textSize">18sp</item>
</style>

这是支持库中的错误还是我错过了什么?

2 个答案:

答案 0 :(得分:1)

沿线的某处,正在拾取并应用textColor的错误/默认值。您可以通过在android:textColor的XML中设置android:textAppearance来强制使用您在android:textColor="@null"中定义的EditText。这也适用于android:textColorHint

(这反映了此accepted answerpost。)

答案 1 :(得分:0)

使用

style="@style/TextAppearance.EditText"

而不是

android:textAppearance="@style/TextAppearance.EditText"

它应该有用!