当通过自定义的textAppearance
样式设置textColor
属性时,它被忽略的原因是什么?
<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>
在 XML 中设置样式:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/EditTextAppearance"
/>
由于某种原因,此样式不能覆盖默认主题控件颜色。
我唯一能够设置颜色的方法是在EditText
中设置textColor
属性(但这不是我想要的):
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/EditTextAppearance"
android:textColor="@color/blue"
/>
请注意,为 TextView
创建的带有 textColor
的自定义 textAppearance
可以正常工作。
我尝试用 android.support.v7.widget.AppCompatEditText
或 android.support.design.widget.TextInputEditText
替换 EditText
,但结果仍然相同。仍然无法正常工作。因此问题不在于 EditText
实现。
我发现了一个与此问题相同的问题 为什么 android:textAppearance 中的 textColor 被忽略?。不幸的是,没有答案。