Android:textColor在android中忽略:textTeppearance的EditText

mat*_*oni 7 android android-styles

是否有任何理由textColor在通过自定义textAppearance样式设置时忽略属性?

<style name="EditTextAppearance" parent="@android:style/TextAppearance.Widget.EditText">
    <item name="android:fontFamily">sans-serif-medium</item>
    <item name="android:textSize">16sp</item>
    <item name="android:textColor">@color/blue</item> <!-- IGNORED -->
</style>
Run Code Online (Sandbox Code Playgroud)

在XML中设置样式:

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="@style/EditTextAppearance"
    />
Run Code Online (Sandbox Code Playgroud)

由于某种原因,此样式不会覆盖默认主题控件颜色.

我能够设置颜色的唯一方法是设置textColor属性EditText(但这不是我想要的):

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="@style/EditTextAppearance"
    android:textColor="@color/blue"
    />
Run Code Online (Sandbox Code Playgroud)

请注意,自定义textAppearancetextColor所创建TextView的作品没有问题.

我尝试EditTextandroid.support.v7.widget.AppCompatEditText或替换,android.support.design.widget.TextInputEditText但结果是一样的.还是行不通.所以问题不在于EditText实施.

我发现同样问题的问题为什么android中的textColor被忽略了?textAppearance?.不幸的是,没有答案.

Che*_*amp 10

沿线的某处,textColor正在拾取和应用错误/默认值.您可以通过在XML中设置来强制使用android:textColor您定义的内容.android:textAppearanceandroid:textColor="@null"EditText

  • 可悲的是,您必须始终记住添加 android:textColor="@null" .. (2认同)